您的位置:首页 > 大数据 > 人工智能

RAID与LVM整理与总结

2013-03-13 20:25 225 查看
--------------------------------RAID------------------------------

磁盘阵列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

性能表现:读,写提升

冗余能力:有

空间利用率:1/2

至少需要4块

RAID-50 先5 后0

性能表现:读,写提升

冗余能力:有

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

至少需要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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RAID LVM