Stratis和VDO高级存储

Stratis和vdo高级存储

Stratis高级存储

简介

  • Stratis原理:将文件系统构建在一个精简配置的共享池中。通过Stratis,可以便捷的使用精简配置(thin provisioning),快照(snapshots)和基于池(pool-based)的管理和监控等高级存储功能
  • 一个共享池中可以创建多个文件系统,文件系统为xfs(在pool池中创建文件系统时,类型就已经定为xfs格式)
  • 守护进程:stratisd.service

配置stratis服务

** 安装stratis软件包**

[root@localhost ~]# yum -y install stratis-cli.noarch stratisd.x86_64 

** 启动服务**

[root@localhost ~]# systemctl enable --now stratisd     //开启服务,并设置为开机自启

创建pool精简池

[root@localhost ~]# stratis pool create pool01 /dev/nvme0n2
pool01 是精简池名称    /dev/nvme0n2 是本地的块设备
  • 创建精简池失败
    在这里插入图片描述
  1. 查看块设备是否存在签名认证
    fdisk -l /dev/nvme0n2
    wipefs /dev/nvme0n2
    
    [root@localhost ~]# fdisk -l /dev/nvme0n2   
    Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x363bea89
    [root@localhost ~]# wipefs /dev/nvme0n2
    DEVICE  OFFSET TYPE UUID LABEL
    nvme0n2 0x1fe  dos   
    
  2. 删除磁盘的签名
    wipefs -a -f /dev/nvme0n2
    
    [root@localhost ~]# wipefs -a -f /dev/nvme0n2
    /dev/nvme0n2: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
    [root@localhost ~]# wipefs /dev/nvme0n2
    [root@localhost ~]# fdisk -l /dev/nvme0n2
    Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    [root@localhost ~]# 
    
  3. 创建pool精简池
    [root@localhost ~]# stratis pool create pool01 /dev/nvme0n2
    [root@localhost ~]# lsblk /dev/nvme0n2
    NAME                                       MAJ:MIN RM SIZE RO TYPE    MOUNTPOINT
    nvme0n2                                    259:3    0  20G  0 disk    
    └─stratis-1-private-720f87ac1b43468cad8b275dd2242a82-physical-originsub
                                               253:2    0  20G  0 stratis 
      ├─stratis-1-private-720f87ac1b43468cad8b275dd2242a82-flex-thinmeta
      │                                        253:3    0  16M  0 stratis 
      │ └─stratis-1-private-720f87ac1b43468cad8b275dd2242a82-thinpool-pool
      │                                        253:6    0  20G  0 stratis 
      ├─stratis-1-private-720f87ac1b43468cad8b275dd2242a82-flex-thindata
      │                                        253:4    0  20G  0 stratis 
      │ └─stratis-1-private-720f87ac1b43468cad8b275dd2242a82-thinpool-pool
      │                                        253:6    0  20G  0 stratis 
      └─stratis-1-private-720f87ac1b43468cad8b275dd2242a82-flex-mdv
                                               253:5    0  16M  0 stratis 
    [root@localhost ~]# 
    

查看精简池

stratis pool list    查看所有的精简池
stratis blockdev list pool01   查看精简池块设备信息
[root@localhost ~]# stratis pool list
Name      Total Physical Size  Total Physical Used
pool01                 20 GiB               52 MiB
[root@localhost ~]# stratis blockdev list pool01 
Pool Name  Device Node     Physical Size   State  Tier
pool01     /dev/nvme0n2           20 GiB  In-use  Data
[root@localhost ~]# 

创建文件系统

stratis filesystem create pool01 pool_file

查看文件系统

stratis filesystem list   查看所有pool的文件系统
stratis filesystem list pool_file   查看指定pool池中的filesystem
[root@localhost ~]# stratis filesystem create pool01 pool_file
[root@localhost ~]# stratis filesystem list
Pool Name  Name       Used     Created            Device                     UUID                              
pool01     pool_file  546 MiB  Dec 17 2021 08:21  /stratis/pool01/pool_file  9a9ff2f334314055ba901fb82971e5a4  

挂载文件系统

  • 临时挂载
    mount /stratis/pool01/pool_file /file
    
    [root@localhost ~]# mount /stratis/pool01/pool_file /file
    [root@localhost ~]# df -Th
    Filesystem                                                                                      Type      Size  Used Avail Use% Mounted on
    devtmpfs                                                                                        devtmpfs  889M     0  889M   0% /dev
    tmpfs                                                                                           tmpfs     904M     0  904M   0% /dev/shm
    tmpfs                                                                                           tmpfs     904M  9.8M  894M   2% /run
    tmpfs                                                                                           tmpfs     904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root                                                                           xfs        17G  4.1G   13G  24% /
    /dev/sr0                                                                                        iso9660   6.7G  6.7G     0 100% /media/cdrom
    /dev/nvme0n1p1                                                                                  xfs      1014M  169M  846M  17% /boot
    tmpfs                                                                                           tmpfs     181M   16K  181M   1% /run/user/42
    tmpfs                                                                                           tmpfs     181M  3.5M  178M   2% /run/user/0
    /dev/mapper/stratis-1-720f87ac1b43468cad8b275dd2242a82-thin-fs-9a9ff2f334314055ba901fb82971e5a4 xfs       1.0T  7.2G 1017G   1% /file
    [root@localhost ~]# 
    
  • 永久挂载
    查看文件系统UUID
    blkid /stratis/pool01/pool_file
    lsblk --ouput=UUID /stratis/pool01/pool_file
    
    修改/etc/fstab配置文件
    [root@localhost ~]# blkid /stratis/pool01/pool_file
    /stratis/pool01/pool_file: UUID="9a9ff2f3-3431-4055-ba90-1fb82971e5a4" TYPE="xfs"
    [root@localhost ~]# echo UUID="9a9ff2f3-3431-4055-ba90-1fb82971e5a4" /file  xfs defaults,x-systemd.requires=stratis.service  0  0 >> /etc/fstab
    [root@localhost ~]# tail -n 1 /etc/fstab 
    UUID=9a9ff2f3-3431-4055-ba90-1fb82971e5a4 /file xfs defaults,x-systemd.requires=stratis.service 0 0
    
      挂载选项x-systemd.requires=stratisd.service可延迟挂载文件系统,直到stratisd.service启动为止
    

扩容pool精简池

stratis pool add-data pool01 /dev/nvme0n3
pool01 是创建的pool精简池名   /dev/nvme0n3 是要添加进pool精简池的磁盘

创建快照

stratis filesystem snapshot pool01 pool_file  snap01

恢复快照

umount /file       取消挂载
stratis filesystem destroy pool01 pool_file   删除原文件系统
stratis filesystem snapshot pool01 pool_file snap01 pool_snap    pool_snap是要创建文件系统的名字
stratis filesystem list 查看已创建的文件系统

删除文件系统

stratis filesystem destroy pool01 pool_file 

删除pool精简池

stratis pool destroy pool01

VDO高级存储

简介

  • 使用VDO功能,可以优化块设备上数据空间占用问题,它可以减少块设备上的磁盘使用空间,同时最大限度减少数据重复,从而节省磁盘空间
  • VDO包含两个模块:kvdo用于控制数据压缩,uds用于重复数据删除
  • VDO层位于块设备(RAID或者本地磁盘)之上,存储层(如LVM和文件系统)位于vdo之上。
    在这里插入图片描述
  • 创建vdo卷时,可以指定块设备,以及vdo卷名,也可以指定vdo逻辑卷大小,vdo卷的逻辑大小可以大于实际块设备的物理大小。
  • 如果未指定逻辑大小,则vdo会将实际物理大小视为卷的逻辑大小,这种方式有利于提高性能,但是会降低存储空间的使用效率,应视情况而定
  • 使用场景:重复高的冷数据存储,数据备份,需要精简置备的场合等

配置VDO服务

安装VDO软件包(rhel8默认已安装)

[root@localhost /]# yum -y install vdo kmod-kvdo

启动服务

systemctl enable --now vdo.service

创建vdo卷

vdo create --name=myvdo --device=/dev/nvme0n2 --vdoLogicalSize=50G
[root@localhost /]# vdo create --name=myvdo --device=/dev/nvme0n2 --vdoLogicalSize=50G
Creating VDO myvdo
vdo: ERROR - dos signature detected on /dev/nvme0n2 at offset 510; use --force to override

'报错原因还是因为磁盘签名,我们可以通过错误提示,加上 --force选项将磁盘签名覆盖,也可以将磁盘签名删除'

[root@localhost /]# wipefs -a -f /dev/nvme0n2 
/dev/nvme0n2: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
[root@localhost /]# vdo create --name=myvdo --device=/dev/nvme0n2 --vdoLogicalSize=50G
Creating VDO myvdo
Starting VDO myvdo
Starting compression on VDO myvdo
VDO instance 0 volume is ready at /dev/mapper/myvdo
[root@localhost /]# 

查看vdo卷

vdo list    #查看vdo卷列表
vdo status --name=myvdo | grep -E 'Com|Dedu' # 验证压缩和重删功能已经开启
    Compression: enabled
    Deduplication: enabled
df -Th         #查看的是vdo卷的逻辑大小
vdostats --human-readable       #查看vdo卷的状态,是实际vdo卷的大小

格式化vdo卷

mkfs.xfs /dev/mapper/myvdo    # vdo卷的逻辑大小越大,格式化时间越长

挂载vdo卷

  • 临时挂载

    mount /dev/mapper/myvdo /file
    
  • 永久挂载

    [root@localhost /]# echo /dev/mapper/myvdo  /file/ xfs defaults,x-systemd.requires=vdo.service  0  0 >> /etc/fstab 
    [root@localhost /]# tail -n 1 /etc/fstab 
    /dev/mapper/myvdo /file/ xfs defaults,x-systemd.requires=vdo.service 0 0
    
      挂载选项x-systemd.requires=stratisd.service可延迟挂载文件系统,直到stratisd.service启动为止
    

    如果没有x-systemd.requires=stratisd.service这个选项,会导致重启后,无法进入系统,在等待一段时间后将进入紧急模式
    在这里插入图片描述
    在这里插入图片描述
    修改/etc/fstab配置文件,添加x-systemd.requires=vdo.service选项
    在这里插入图片描述
    reboot重启后,成功进入系统,并自动挂载vdo卷
    在这里插入图片描述

posted @ 2022-09-02 19:44  未来的你!  阅读(195)  评论(0编辑  收藏  举报