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)