RAID(磁盘阵列冗余 提高硬盘访问速度)
raid0 raid1 raid5 raid10
条带化写 冗余 带奇偶校验的条带化 raid1+raid0
2块磁盘 2块磁盘 3块磁盘 4块磁盘
500G 500G 500G 500G
1T 500G 1T 1T
mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} 物理硬盘sdb1,sdc1,sdd1
mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} x 1 /dev/sda9 备用盘
-C create 创建 -l level 类型 -n number 硬盘数量
mdadm -D /dev/md0 查看Raid
mdadm -Ds 扫描查看简洁信息
mdadm -S /dev/md0 停止Raid
mdadm -A /dev/md0 /dev/sda{6,7,8} 停止后再启动
删除
mdadm -S /dev/md0
rm -rf /dev/md0
使用
mkfs.ext3 /dev/md0
模拟损坏
dd if=/dev/zero of=data bs=100M count=3
md5sum data
mdadm /dev/md0 -f /dev/sda6 损坏
mdadm /dev/md0 -r /dev/sda6 卸载
mdadm /dev/md0 -a /dev/sda9 挂载
mdadm /dev/md0 -a /dev/sda9 备用磁盘
mdadm -D /dev/md0
永久保存
touch /etc/mdadm.conf
cat /etc/mdadm.conf
DEVICE /dev/sda6 /dev/sda7 /dev/sda8
ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 UUID=3
302db2d:e60e1cfb:5518ba01:f353f556 (mdadm -Ds >> /etc/mdadm.conf)
/usr/share/doc/mdadm-2.6.9/mdadm.conf-example 配置模板
mdadm -S /dev/md0
mdadm -As /dev/md10 重启测试
创建raid时直接指定备盘
mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1 /dev/sda9
彻底删除
mdadm -S /dev/md0
rm -rf /dev/md0
mdadm --zero-superblock /dev/sda6
mdadm --zero-superblock /dev/sda7
mdadm --zero-superblock /dev/sda8
mdadm --zero-superblock /dev/sda9
lvm(逻辑卷管理)作用:支持硬盘在线扩容
建立lvm过程
创建物理卷
pvcreate /dev/sda6 /dev/sda7
查看物理卷pvs
显示详细信息pvdisplay
创建卷组
vgcreate vg0 /dev/sda6 /dev/sda7
查看卷组vgs
显示详细信息vgdisplay
创建逻辑卷
lvcreate -L 200M -n /dev/vg0/lv0 vg0
查看逻辑卷lvs
显示详细信息lvdisplay
格式化
mkfs.ext3 /dev/vg0/lv0
挂载
mount /dev/vg0/lv0 /mnt/
查看信息
df -Th
在线扩容
lvextend -L +100M /dev/vg0/lv0
lvs
df -Th
刷新扩展空间
resize2fs /dev/vg0/lv0 300M
lv缩小
df -Th
umount /dev/vg0/lv0
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 150M
lvs
lvresize -L 150M /dev/vg0/lv0
实验:
1.创建lv0 大小200M 将lv0格式化化挂载/mnt
在该目录下创建data文件150M 并记录下md5sum值
创建pv
pvcreate /dev/sda6 /dev/sda7 /dev/sda8
创建vg
vgcreate vg0 /dev/sda6 /dev/sda7 /dev/sda8
创建lv
lvcreate -L 200M -n /dev/vg0/lv0 vg0
mkfs.ext3 /dev/vg0/lv0
mount /dev/vg0/lv0 /lvm
2.对lv0进行缩小操作,缩小到140M 可不可以?报错
缩小到160M 可不可以?可以
3.将lv0挂载起来。验证缩小操作是否完成?
在不卸载lv0的前提下将lv0在线扩容到300M
vg扩大和缩小(卷组硬盘数量)
pvcreate /dev/sda8
vgextend vg0 /dev/sda8
缩小(减少硬盘数量数量)
vgreduce vg0 /dev/sda8
数据移动
前提,使用的设备必须在同一个vg
pvmove /dev/sda6 /dev/sda8 指定sda6存储的数据移动到sda8
pvmove /dev/sda8 不指定设备移动数据
删除lv
umount /dev/vg0/lv0 卸载设备
lvremove /dev/vg0/lv0 删除lv
vgremove vg0 删除vg
pvremove /dev/sda{6,7,8}删除pv
lvm快照
创建快照
lvcreate -L 50M -s -n /dev/vg0/lv0-s0 /dev/vg0/lv0
快照名称 原文件
lvm快照
创建
lvcreate -L 50M -s -n /dev/vg0/lv0-s0 /dev/vg0/lv0
1.只使用快照(原lv不挂载)只能在原lv数据基础上作出50M的修改,
一旦到了最大值该快照自动损坏所有的修改都是记录在快照里
2.只是使用原lv(快照保存,不挂载)
使用快照数据恢复原数据(快照size 大于 原lv)
作业:
1.分6个分区200M 做个raid5(400) raid0(400) sda10(200)
创建raid5
mdadm -C /dev/md5 -l 5 -n 3 /dev/sda{5,6,7}
mkfs.ext3 /dev/md5
mount /dev/md5 /raid5/
df -Th
创建raid0
mdadm -C /dev/md0 -l 0 -n 2 /dev/sda{8,9}
mdadm -Ds
mkfs.ext3 /dev/md0
mount /dev/md0 /raid0
df -Th
2.将raid5 创建成pv vg lv
扩大vg sda10
扩大lv到500M
将sda10 数据移动 raid0 移除 sda10
vgcreate /dev/sda10
pvcreate /dev/sda10
vgextend vg0 /dev/sda10
lvextend -L +200M /dev/vg0/lv0
df -Th
resize2fs /dev/vg0/lv0 500M
df -Th
pvs
pvcreate /dev/md0
vgextend vg0 /dev/md0
pvs
df -Th
pvmove /dev/sda10 /dev/md0
1.只使用快照(原lv不挂载)
写入母盘数据,然后卸载母盘,挂载快照,
查看快照内容和母盘数据一样,只能修改快照数据,母盘数据不变。
重新挂在母盘,原来数据依旧存在
2.只是使用原lv(快照保存,不挂载)
使用快照数据恢复原数据(快照size 大于 原lv)