VDO、RAID、LVM实验记录
- VDO
- RAID
-
- LVM
- 创建逻辑卷
- 扩容逻辑卷
- 缩小逻辑卷
- 逻辑卷快照
- 删除逻辑卷
VDO
使用vdo(虚拟数据优化)目的节省空间。实验为创建挂载的操作
- 虚拟机中新添加一块SATA硬盘,大小20G
- 开启虚拟机查看是否安装vdo,没安装的话
dnf install kmod-kvdo vdo
- 看下新加的硬盘是否被识别
- 使用vdo命令创建vdo卷,对应参数name:代表新设备卷的名称 device:代表由哪块盘制作 vdoLogicalSize:代表之作后的大小(部署虚拟机建议采用逻辑存储与物理存储10:1比例进行配置),使用命令进行创建,新建的vod卷存放在/dev/mapper/mystorage
vdo create --name=mystorage --device=/dev/sdb --vdoLogicalSize=200G
- 可以查看新建卷信息
vdo status --name=mystorage
- 将其进行格式化(需要等一会)
mkfs.xfs /dev/mapper/mystorage
udevadm settle
刷新操作,让配置生效- 进行挂载
mkdir /mystorage
mount /dev/mapper/mystorage /storage
vdostats --human-readable
- 查看逻辑存储空间
- 设备进行开机挂载,编辑/etc/fstab,default后面加了个参数,是挂载前先要让vdo服务启动
echo "$(blkid /dev/mapper/mystorage | awk '{print $2}') /mystorage xfs defaults,x-systemd.requires=vdo.service 0 0" >> /etc/fstab
RAID
实验RAID10、RAID5创建,损坏磁盘阵列修复,磁盘阵列+备份盘
RAID10实验
- 首先依旧在虚拟机中创建四块硬盘,每块大小5G
- 开机识别后,使用命令mdadm进行创建,其中参数C:创建 v:显示过程 /dev/md0是创建RAID10后的设备名字 n:是需要几块硬盘 l:指定RAID级别 最后的是所有硬盘的名字
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd[b-e]
- 查看一下信息
mdadm -Q /dev/md0
(简要信息)
mdadm -D /dev/md0
(详细信息)
- 格式化
mkfs.ext4 /dev/md0
mkdir /RAID
mount /dev/md0 /RAID
echo "$(blkid /dev/md0 | awk '{print $2}') /RAID ext4 defaults 0 0" >> /etc/fstab
- 损坏磁盘阵列和修复,通过模拟硬盘损坏,进行修复。实验前进入/RAID目录中创建一些文件
- 这里直接从虚拟机中删除一块硬盘,模拟硬盘故障
- 删除完成后,查看一下磁盘的状态
mdadm -D /dev/md0
- 此时看下/RAID目录下文件是否正常,可以看到数据并没有受到影响
- 关闭虚拟机,添加上一块硬盘
- 更换完毕后 看下是新更换的硬盘是sdc,然后-a进行添加操作,系统会自动同步数据-D参数可以看到同步过程
mdadm /dev/md0 -a /dev/sdc
RAID5实验
raid5需要至少三块硬盘,此外该实验会再添加一块备份盘(热备盘),当磁盘阵列中有故障硬盘出现后,会自动顶替上去。
- 初始化下虚拟机,添加四块硬盘
- 创建一个RAID5磁盘阵列+备份盘,同样看下识别的硬盘
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e]
mkfs.ext4 /dev/md0
mkdir /RAID
echo "$(blkid /dev/md0 | awk '{print $2}') /RAID ext4 defaults 0 0" >> /etc/fstab
RAID5的可用容量为n-1,三块5G的所以最后可用容量为15-5=10G
- 此时删除掉一块硬盘,然后去看md0的状态,可以看到备份盘已经顶替上去
- 删除磁盘阵列
- 查看下当前磁盘阵列信息,将所有磁盘设置成停用状态
umount /RAID
mdadm /dev/md0 -f /dev/sdb
mdadm /dev/md0 -f /dev/sdd
mdadm /dev/md0 -f /dev/sde
mdadm /dev/md0 -r /dev/sdb
mdadm /dev/md0 -r /dev/sdd
mdadm /dev/md0 -r /dev/sde
查看下状态,都已经移除
mdadm --stop /dev/md0
此时假如去用fdisk /dev/sdb可以看到有这个提示
对每个磁盘阵列中的硬盘执行,此时磁盘阵列就删除完了
mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdd
mdadm --zero-superblock /dev/sde
LVM
创建逻辑卷
- 初始化虚拟机,加两块硬盘,看下加载信息
- 让新加的两块硬盘设备支持LVM技术
pvcreate /dev/sd[b-c]
- 把两块硬盘设备加入到storage卷组中,然后查看卷组的状态(卷组名storage)
- 切割出一个约150M的逻辑卷设备。两种切割方式-L直接指定大小 -l是每个单元为4MB,然后数量.比如-l 20 那么容量就是204MB=80MB(逻辑卷名vo)
lvcreate -n vo -l 37 storage
- 生成的逻辑卷进行格式化,挂载使用(dev/卷组名称/逻辑卷名称)
mkfs.ext4 /dev/storage/vo
mkdir /mydir
echo "$(blkid /dev/storage/vo | awk '{print $2}') /mydir ext4 defaults 0 0" >> /etc/fstab
mount -a
- 查看挂载情况
扩容逻辑卷
- 扩容先卸载挂载点
umount /mydir
- 将刚才那个140M的逻辑卷扩容为300M
lvextend -L 300M /dev/storage/vo
e2fsck -f /dev/storage/vo
resize2fs /dev/storage/vo
- 挂载完后df看下
缩小逻辑卷
- (容易丢数据记得备份)
- 先卸载
umount /mydir
- 检查文件系统完整性
e2fsck -f /dev/storage/vo
- 通知系统缩小容量为120M
resize2fs /dev/storage/vo 120M
- 将逻辑卷容量修改为120M
lvreduce -L 120M /dev/storage/vo
- 看下容量变化
逻辑卷快照
快照卷容量必须和逻辑卷容量一样 快照卷单次有效,一旦还原后就会被删除
- 看下卷组容量
vgdisplay
- 往挂载目录写个文件
- 使用-s参数生成一个快照卷,-L指定切割大小,需要和设备容量(刚才是120M)保持一致 同时需要写针对哪个逻辑卷执行的快照操作,-n指定是名字
lvcreate -L 120M -s -n SNAP /dev/storage/vo
- 在逻辑卷所挂在的目录中创建一个100M文件,查看快照的容量变化
dd if=/dev/zero of=/mydir/files count=1 bs=100M
- 还原快照,刚才创建的垃圾文件没了,并且快照卷也被删除
umount /mydir
lvconvert --merge /dev/storage/SNAP
删除逻辑卷
创建逻辑卷的顺序是>创建物理卷->卷组->逻辑卷
那么删除的顺序刚好相反 逻辑卷->卷组->物理卷
- 取消关联,记得把/etc/fstab中的挂载信息删掉
umount mydir/
- 删除逻辑卷
lvremove /dev/storage/vo
- 删除卷组
vgremove storage
- 删除物理卷设备
pvremove /dev/sd[b-c]
- 查看lvm信息,已经没有创建的vo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)