系统磁盘高级管理
1.LVM:逻辑卷,动态调整分区大小,扩展性好
(1)创建PV
pvcreate :将实体 partition 创建成为 PV ;
pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
pvdisplay :显示出目前系统上面的 PV 状态;
pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性
(2)创建VG
vgcreate :创建 VG 的 (-s :后面接 PE 的大小,默认4M)
vgscan :搜寻系统上面是否有 VG 存在?
vgdisplay :显示目前系统上面的 VG 状态;
vgextend :在 VG 内增加额外的 PV ;
vgreduce :在 VG 内移除 PV;
vgchange :设置 VG 是否启动 (active);
vgremove :删除一个 VG
(3)创建LV
lvcreate :创建 LV
lvscan :查询系统上面的 LV ;
lvdisplay :显示系统上面的 LV 状态
lvextend :在 LV 里面增加容量!
lvreduce :在 LV 里面减少容量;
lvremove :删除一个 LV
lvresize :对 LV 进行容量大小的调整
(4)LVM案例:创建卷组mailbox,逻辑卷mail
15 fdisk /dev/sdb
16 fdisk /dev/sdc
17 fdisk /dev/sdd
18 fdisk -l
19 pvcreate /dev/sdb1 /dev/sdc1
20 vgcreate -s 16m mailbox /dev/sdb1 /dev/sdc1
21 vgscan
22 vgdisplay mailbox
23 lvcreate -n mail1 -L 10G mailbox
24 lvdisplay /dev/mailbox/mail1
25 mkdir /mail1
26 mkfs.xfs /dev/mailbox/mail1
27 mount /dev/mailbox/mail1 /mail1/
29 lvcreate -n mail2 -l 1000 mailbox
30 lvdisplay /dev/mailbox/mail2
31 mkdir /mail2
32 mkfs.xfs /dev/mailbox/mail2
33 mount /dev/mailbox/mail2 /mail2
35 echo "/dev/mailbox/mail1 /mail1 xfs defaults 0 0" >> /etc/fstab
36 echo "/dev/mailbox/mail2 /mail2 xfs defaults 0 0" >> /etc/fstab
37 cat /etc/fstab
38 vgdisplay mailbox
40 lvextend -L 15G /dev/mailbox/mail1
42 xfs_growfs /dev/mailbox/mail1
44 lvextend -L 30G /dev/mailbox/mail1
45 xfs_growfs /dev/mailbox/mail1
47 vgextend mailbox /dev/sdd1
48 vgdisplay mailbox
49 lvextend -L 30G /dev/mailbox/mail1
50 xfs_growfs /dev/mailbox/mail1
51 df -hT
52 lvextend -L +4G /dev/mailbox/mail2
53 xfs_growfs /dev/mailbox/mail2
====================================
磁盘配额
umount /data
mount -o usrquota,grpquota /dev/vg0/lv1 /data
xfs_quota -x -c 'limit -u bsoft=20M bhard=40M isoft=6 ihard=8 test' /data
-x:表示启动专家模式,再当前模式下以允许对配额系统进行修改的所有管理命令可用
-c:表示直接调用管理命令
-u:指定用户账号对象
-g:指定组账号对象
bsoft:设置磁盘容量的软件限制数值
bhard:设置磁盘容量的硬限制数值
isoft:设置磁盘文件数的软限制数值
ihard:设置磁盘文件数的硬限制数值
测试:
su - test
dd if=/dev/zero of=file bs=1M count=50
实战:xfs文件系统的备份与恢复
环境:添加第二块磁盘,挂载到/jimi
xfsdump -f /opt/dump_sdb1 /dev/sdb1 #备份磁盘分区
xfsrestore -f /opt/dump_sdb1 /jimi #还原
xfsdump -I #查看所有备份记录
注意:脚本免交互命令
xfsdump -f /opt/dump_sdb2 /dev/sdb1 -L sdb1_opt_v1 -M sdb1
2.VDO: Virtual Data Optimizer 通过数据去重、压缩的方式来优化存储空间
(1) 安装
yum -y install vdo
(2) vdo 命令语法
create 创建一个VDO卷及其关联索引使其可用。
remove 删除一个或多个已停止的VDO卷和相关卷索引。
modify 修改一个或所有VDO的配置参数卷。更改将在VDO下次运行时生效设备启动;已经运行的设备则不是受到影响。
list 显示已启动VDO卷的列表。如果,所有指定它同时显示已启动和未启动卷。
start 启动一个或多个已停止、激活的VDO卷相关的服务。
status 以YAML格式报告VDO系统和卷状态。但是,这个命令不需要root特权如果没有,信息将是不完整的。
stop 停止一个或多个正在运行的VDO卷和相关卷服务。
activate 激活一个或多个VDO卷。激活卷可以使用“开始”命令启动。
deactivate 使一个或多个VDO卷失效。停用不能通过“start”命令启动卷。停用当前正在运行的卷不会停止它。
growLogical 增加VDO卷的逻辑大小。卷必须存在并且必须正在运行。
growPhysical 增加VDO卷的物理大小。卷必须存在并且必须正在运行。
(3) vdo卷案例:创建一个8G大小的vdo卷
vdo create --name=vdoname --device=/dev/sde1 --vdoLogicalSize=8G
(4) 查看vdo卷
vdo list
lsblk /dev/sde
(5) 格式化vdo卷
mkfs.xfs /dev/mapper/vdoname
(6) 查看vdo卷属性
vdostats --si
blkid /dev/mapper/vdoname
(7) 自动挂载
mkdir /vdodir
echo "/dev/mapper/vdoname /vdodir xfs x-systemd.requires=vdo.service 0 0" >> /etc/fstab
(8) 删除vdo卷
umount /vdodir
vdo remove --name=vdoname
3. stratis(centos8)
便捷的使用精简置备(Thin Provisioning)、快照(Snapshots)、基于池(Pool-based)的管理和监控等高级存储功能;
基于xfs文件系统格式,创建filesystem后不需要格式化
(1) 安装stratis
yum install -y stratisd stratis-cli
systemctl enable stratisd
(2) 创建pool池,大于1G
stratis pool create pool-one /dev/sda1
stratis pool list
(3) 向已经存在的pool池中添加块设备
stratis pool add-data pool-one /dev/sda2
(4) 同时将两块块设备添加到同一个pool池中
stratis pool create pool-two /dev/sda3 /dev/sda4
(5) 查看pool-one池和pool-two池中所使用的块设备
stratis blockdev list pool-one
stratis blockdev list pool-two
(6) 在pool-one池中创建filesystem(一次只能创建一个filesystem)
stratis filesystem create pool-one file-one
stratis filesystem list
(7) 挂载filesystem
mkdir /fsdir
mount /stratis/pool-one/file-one /fsdir/
(8) 永久挂载
blkid /stratis/pool-one/file-one
echo "UUID=deeb42ce-5715-42ca-b33a-fcbfece6dd0a /fsdir xfs defaults 0 0" >> /etc/fstab
4.raid: 磁盘阵列(Redundant Arrays of Independent Disks)由独立磁盘构成的具有冗余能力的阵列。
Raid 0(条带): 读写速度得到提升,但不具备数据冗余,不推荐,最少2块硬盘
Raid 1(镜像): 写性能下降,读性能提升,相反冗余能力提升。但磁盘利用率是1/2,最少2块硬盘
Raid 1+0: 同组不能都坏掉,目前主流的方案。最少4块
Raid 0+1: 同组都可以坏,不能是不同组的相同标号。最少4块硬盘
Raid 0+1 和Raid1+0的空间利用率都是1/2
Raid 5(校验码机制):读写都提升,冗余有,空间利用率(n-1)/n 只能坏一块。最少3块硬盘
Raid 5+0:具有RAID 5和RAID 0的共同特性。它由两组以上RAID 5磁盘组成(每组最少3个)。
Raid 6 可以看做是raid5的升级版,它支持同时损坏2块磁盘。最少是4块盘
Raid 7 可以看做是raid5的升级版,它支持同时损坏3块磁盘。最少是5块盘
-C, --create:创建一个新的阵列
-a, --auto{=no,yes,md,mdp,part,p}{NN}:
-l, --level=:设定 raid level.
-n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改
-v, --verbose:显示细节
-D, --detail:打印一个或多个 md device 的详细信息
-x ,spare-devices= :指定初始阵列的富余device数目。热备盘
(1) 分区
gdisk /dev/sdb
FD00
(2) 创建raid0,查看raid设备,挂载
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
cat /proc/mdstat
mdadm -D /dev/md0
mkfs.xfs /dev/md0
mkdir /raid0
mount /dev/md0 /raid0
echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab
(3) 创建raid1
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{3,4}
mdadm -D /dev/md1
mkfs.xfs /dev/md1
mkdir /raid1
mount /dev/md1 /raid1
echo "/dev/md1 /raid1 xfs defaults 0 0" >> /etc/fstab
mdadm /dev/md1 -f /dev/sdb4 #模拟损坏
mdadm /dev/md1 -r /dev/sdb4 #物理拔除
mdadm /dev/md1 -a /dev/sdb5 #添加新盘
umount /dev/md1 #卸载
mdadm -S /dev/md1 #关闭md1
mdadm -A /dev/md1 #重启md1,报错(损坏盘)
mdadm -AR /dev/md1 /dev/sdb{3,4} #从新声明md1磁盘成员
mdadm /dev/md1 -a /dev/sdb4 #添加损坏盘
mdadm /dev/md1 -a /dev/sdb5 #添加冗余盘
mdadm -D --scan > /etc/mdadm.conf #扫描并添加raid信息到自启文件
mdadm -S /dev/md1 #重启测试
mdadm -A /dev/md1
(4) 创建raid5
mdadm -Cv /dev/md5 -a yes -n 3 -l 5 -x 2 /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
(5) 创建raid10
mdadm -Cv /dev/md10 -a yes -n 4 -l 10 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf