天天看点

RAID与LVM整理与总结

磁盘阵列RAID,RedundantArrays of Inexpensive Disks,即容错廉价磁盘阵列

     (图片考虑鸟哥linux私房菜基础篇第三版--P464)

级别:仅代表磁盘组织方式不同,没有上下之分;

RAID-0:(等量模式,stripe):性能最佳-------条带

 性能提升,几乎接近n倍:读,写----将完整数据切割成n份,同时分开存入n个磁盘

 冗余能力(容错能力),没保证--损坏一个磁盘,整个数据文件将丢失

 空间利用率:nS

 至少需要2块盘

RAID-1:让一份完整的数据保存在两块磁盘上边---镜像

 性能表现:写性能下降,读性能提升

 冗余能力:有

 空间利用率:1/2---整体RAID的容量几乎少了50%

 至少2块盘

RAID-5:轮流校验盘

 性能表现:读,写提升

 空间利用率:(n-1)/n

 至少需要3块

  RAID-5有同位检查码,所以其总容量会是整体磁盘数量减1块,而当其中磁盘损毁的数量大于等于2的时候,整组就会损毁。

RAID 1+0  就是将RAID-0 RAID-1 组合起来 先1后0  比较考虑使用这个。

 空间利用率:1/2

 至少需要4块

RAID 0+1  就是将RAID-0 RAID-1 组合起来 先0后1

RAID-50 先5 后0

 至少需要6块

jbod:多块盘叠加-将多个小盘组合成一个大盘,不分割数据和盘,盘满便叠加

 性能提升:无

 空间利用率100%

 至少需要2块

软件磁盘阵列:

 通过系统仿真,因此使用的设备文件名是系统的设备文件,文件名为/dev/md0,/dev/md1

逻辑RAID:

/dev/md#

/dev/md1

MD:Multi Device,多设备 用户空间工具,管理工具

 mdadm:将任何块设备做成RAID

 模式化的命令:

  1、创建模式

   -C

    专用选项:

     -l:级别

     -n:设备个数

     -a {yes|no}:自动为其创建设备文件

     -c:CHUNK大小(字符串),2^n默认为64k

     -x #:指定空闲盘个数

  2、管理模式

   -a|--add,-r|--remove ,-f|--fail--set-faulty

   mdadm /dev/md# --fail /dev/sda7

  3、监控模式

   -F

  4、增长模式

   -G

  5、装配模式

   -A

 查看RAID阵列的详细信息

 mdadm -D /dev/md#

  --detail

 停止阵列:

 mdadm -S /dev/md#

 --stop

 watch:周期性的执行某命令,并以全屏方式显示结果

 -n #:指定周期长度,单位为秒,默认为2

 watch -n # 'COMMAND'

 mdadm -D --scan > /etc/madam.conf    将当前RAID信息保存至配置文件,以便以后进行装配

例子:创建RAID-0   2G:

  fdisk创建2个1G的分区,t 调整类型为 fd  完事记得重读 partprobe /dev/sda     cat /pro/partitions确保下是否识别两个新建的分区

  mdadm -C /dev/md0 -a yes  -l 0 -n 2 /dev/sda{5,6}

   cat /pro/mdstat 会显示当前系统上处于启用的RAID设备

  mke2fs -j /dev/md0 任何一个存储空间需要格式化,挂载

  mount /dev/md0  /mnt       ls /mnt可以查看是否挂载(出现lost+found)

 创建RAID1   2G 

  fdisk创建2个2G的分区,L 调整类型为 fd  完事记得重读

  partprobe /dev/sda     cat /pro/partitions

  mdadm -C /dev/md1 -a yes  -l 1 -n 2 /dev/sda{7,8}

   cat /pro/mdstat   (会显示进度%) 

  mke2fs -j /dev/md1

  mount /dev/md0  /media       ls /media

 模拟损坏一块RAID1的一块磁盘

  mdadm /dev/md1 --fail /dev/sda8

 查看下md1的信息

  mdadm --detail /dev/md1

   cd进去/media/文件,看看是否能cat inittab  (可以使用)

 因为8被模拟损坏,所以需要移除

  mdadm /dev/md1 -r /dev/sda8 重新detail 其状态为remove

 现在将新的分区加进来

  mdadm /dev/md1 -a /dev/sda9    查看detail 显示正在恢复

 停止阵列

  mdadm -S /dev/md1

 重新启用

  mdadm -A /dev/md1 /dev/sda7 /dev/sda9 可以-D查看

 ####假如在md1里面多加入一块分区

  mdadm -a /dev/sda7    其中已有2块磁盘为好的,这位第三块,显示状态为space即为空闲

 那么此时将sda8模拟下线,

  mdadm /dev/md1 -f /dev/sda8

   mdadm -D /dev/md1 查看7正在同步,而8显示为损坏的空闲盘

 watch 'cat /proc/mdstat'  可以自动2秒刷新一次同步的进度

  mdadm -D --scan > /etc/madam.conf

  将当前RAID信息保存至配置文件,以便以后进行装配

------------------------------DM-LVM---------------------------------  

LVM:叫做逻辑卷管理器,做法是将几个物理分区通过软件组合成为一块看起来是独立的大磁盘,然后将这块大磁盘在经过分成为可以使用的分区LV

 PhysicalVolume,PV,物理卷

  系统标示符为8e

 VolumeGroup,VG,卷用户组

 Physical Extend,PE,物理扩展块

  默认使用4MB而LVM的VG最多仅包含有65534个PE,因此默认的LVMVG会有4M*65534/(1024M/G)=256G。

 LogicalVolume,LV逻辑卷

 LVM最主要的用处是在实现一个可以天性调整容量的文件系统上么人不是在新建一个性能为主的磁盘上 

例子:

 fdisk /dev/sda  创建1个7G的分区,1个3G的分区(多余创建1个5G的),t 调整类型为 8e  完事记得重读 partprobe /dev/sda     cat /pro/partitions确保下是否识别两个新建的分区

 PV的创建

  pvcreate /dev/sda{10,11}

   (pvs可以查看当前系统的pv...pvdisplay详细)

   (pvscan扫描当前系统的pv)

 VG的创建

  vgcreate myvg /dev/sda{10,11}

   (vgs可以查看当前系统的vg...vgdisplay详细)

   (vgscan扫描当前系统的vg)

   (-s可以指定PE的大小,默认是4M    vgcreate VG_NAME )

  删除vg(如果vg上已经创建了LV并且已经存了数据,那么它不能直接删除)

   vgremove myvg

   重新创建PE为8M的VG

    vgcreate -s 8M myvg /dev/sda{10,11}

  VG的缩减(就是将其中的PV去除,也就是要将PV中的PE挪走)

   pvmove /dev/sda11

   vgreduce myvg /dev/sda11

   pvs查看可看到sda11没有VG组,然后

   pvremove /dev/sda11

  VG的扩展

   pvcreate /dev/sda12

   vgextend myvg /dev/sda12 将12加入VG myvg中

 LV的创建

  lvcreate -L 50M -n textlv myvg

   lvs查看.lvdisplay

  mke2fs -j /dev/myvg/textlv  格式化

  mount /dev/myvg/textlv /mnt 挂载-----lv /dev/mapper可查看真正的设备文件名

  ls /mnt

  移除LV

   先解除挂载

    umount /mnt

   然后移除

    lvremove /dev/myvg/textlv

 扩展逻辑卷-----先扩展物理,然后再增加逻辑卷

  lvextend(扩展物理)

   -L [+]#(+的作用是代表扩展到还是扩展为,不带+是扩展为)

  resize2fs(扩展逻辑)

   resize2fs /PATH/TO/LV 5G扩展到5G

   resize2fs -p /PATH/TO/LV    修复逻辑卷的边界为最大

  lvcreate -L 2G -n testlv myvg

   mke2fs -j /dev/myvg/textlv

   mkdir /user

   vim /etc/fstab << /dev/myvg/testlv  /users ext3 default,acl 0 0

   mount -a

   mount

   cd /users      ls

   cp /etc/inittab .      ls       cat inittab(可用)

   df -h

   lvextend -L 5G /dev/myvg/testlv (vgs确保空间够用)

   df -lh   lvs (结果显示只扩展了物理边界,没扩展逻辑的)

   resize2fs -p /dev/myvg/testlv    df -lh 显示正确

   (处于挂载中的 不用卸载可直接扩展)

 缩减逻辑卷

  注意:

  1、不能在线缩减,得先卸载;

  2、确保缩减后的空间大小依然能存储原有的数据;

  3、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态;

  resize2fs

   resize2fs /PATH/TO/PV 3G

  lvreduce -L [-]# /PATH/TO/LV

  重新挂载

  df -lh  查看空间多少,

  umount /users

  mount    查看卸载完成否

  e2fsck -f /dev/myvg/testlv   强制文件系统检查

  resize2fs /dev/myvg/testlv 3G 缩减至3G

  lvreduce -L 3G /dev/myvg/testlv 缩减边界

  mount -a

  mount

  df -lh

 使用快照卷

 1、生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小;

 2、快照卷应该是只读的;

 3、跟原卷在同一卷组内;

  创建快照卷

  lvcreate

   -s 表示其为快照卷

   -p r|w 设定权限为只读r

  lvcreate -L # -n SLV_NAME  -s -p r /PATH/TO/LV

  lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testly

  mount /dev/myvg/test-snap /mnt

  cd /mnt     ls 显示挂载完成

  cat  inittab | wc-l  显示50

  tar -jcf /tmp/users/tar.bz2  inittab备份下镜像

  ls /tmp

  删除快照

  umount /mnt

  lvremove /dev/myvg/testlv-snap

  还原备份快照

  tar xf /tmp/users/tar.bz2 -C ./

  ls

本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1153580,如需转载请自行联系原作者

继续阅读