15---RAID 和 LVM


RAID (Redundant Arrays of Independent Disks
Level仅代表磁盘组织方式不同,没有优劣之分,是速度和可用性的折中
==========================================
0条带
1mirror
4校验码(异或,校验码固定存储在一块磁盘上。)
5校验码(异或,校验码分散在各个盘上,各磁盘轮流做校验码盘。)
6校验码(异或,两块校验盘。)
01先条带后镜像(从下往上看),称为01
10先镜像后条带(从下往上看),称为10
RAID级别(level:0~6)
    RAID-0:条带卷,stripe
        数据被分散到各个独立磁盘,没有冗余,可靠性差。
            IO性能:读写性能提升;
        冗余能力:无
        最少磁盘数2,2+
        可用空间为N*min(S1,S2,S3...);
    RAID-1:镜像卷,mirror
            IO性能:写性能无提升,读数据有提升;
                冗余能力:有
        最小磁盘数2,2+
        可用空间N*min/2;
    RAID-2:不常见
    RAID-3:不常见

    RAID-4:一份校验数据,有一个盘作为校验盘(固定)
    RAID-5:一份校验数据,可轮流作为校验盘
        IO性能:读写提升
                冗余能力:有
        最少磁盘数目3
                可用空间(N-1)*min;
    RAID-6: 两份校验数据,轮流作为校验盘

    RAID01:先做成RAID0,再做成RAID1
        IO性能:读写提升
        冗余能力:有
        最小磁盘数:4
    RAID10:先做成RAID1,再做成RAID0
        IO性能:读写提升
        冗余能力:有
        最小磁盘数:4

JBOD:Just a Bunch Of Disks
 功能:将多块磁盘的空间合并成一个大的连续空间使用。一个磁盘写满后接着写下一块磁盘。
          不解决速度问题(因为顺序读写)和冗余(可用性)问题。
          Hadoop推荐使用JBOD,而非RAID
==========================================================================
硬RAID:通过磁盘阵列卡来完成对磁盘阵列的管理,卡上有专门的ASIC。
软RAID:通过软件模拟硬件完成对磁盘阵列的管理,内核模块模 md(multi disks)拟RAID控制器,计算机上的多块硬盘(or 分区)可以组成RAID。
/dev/md#
mdadm (将任何块设备做成RAID )模式化的命令
mdadm [mode] <RAID_Device> [options] <component device>
--create  |  -C  创建模式
    -l     --level=     级别
    -n    --raid-devices=    设备个数
    -x    --spare-devices=  空闲盘个数
    -a    --auto={yes|no}    是否自动为其创建设备文件,即:md#
    -c     chunk大小,2^n
mdadm --create /dev/md0 -a yes  -l 5 -n 4 -x 1 /dev/sda{5,6,7,8,9}
查看刚刚建立的RAID阵列详细信息,可以使用如下命令: 
    mdadm -D /dev/md0 
    cat /proc/mdstat

--manage  管理模式
    -a    --add        热插一个设备(模拟添加一个component device)
    -r    --remove   热拔一个非active的设备(模拟拔除一个component device)
    -f    --fail          将某设备标记为faulty(模拟损坏 component device )
mdadm --manage /dev/md0 -f /dev/sda8
mdadm --manage /dev/md0 -r /dev/sda8
mdadm --manage /dev/md0 -a /dev/sda10
--manage可以省略,使用如下格式:
mdadm [options] RAID_Device [options] Component_Device
mdadm -f /dev/md0 /dev/sda8
mdadm -r /dev/md0 /dev/sda8
mdadm -a /dev/md0 /dev/sda10
mdadm -D /dev/md0 
mdadm /dev/md0 -f /dev/sda8
mdadm /dev/md0 -r /dev/sda8
mdadm /dev/md0 -a /dev/sda10

杂项模式
mdadm --detail RAID_Device 或 -D    显示RAID设备(md设备)详细信息
mdadm --stop RAID_Device  或 -S     停止使用某RAID设备(md设备)   -----> stop md#设备后,/dev下再也找不到md#,只有重建。
 执行 mdadm –D –-scan >> /etc/mdadm.conf 得到配置文件,然后mdadm -A 可以激活设备(前提是原raid成员都还在,或存在数量能够具有恢复能力)

-S 停掉 raid 后,原 raid member 设备上有元数据存留,若以后不再使用该raid,用 mdadm --zero-superblock /dev/sdb1 ,可以将其抹掉(填充0)。

-F 监控模式
-G 增长模式:
mdadm –G /dev/md0 –n4  -a /dev/sdf1
增加 RAID 成员后,也要同步文件系统,使用 resize2fs 或 xfs_growfs 

-A 装配模式

--add,--del 管理模式:
 
软RAID制作完成后,经过格式化和挂载,就能够被使用了。删除软RAID的顺序正好相反:umount--->stop RAID_Device--->

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

watch 周期性地执行一个命令,并把结果全屏显示出来
watch -n 'COMMAND'(单引号) 
-n # 单位为s,默认为2s
 
===============================================================
LVM(Logical Volume Manager
LVM被设计用来实现弹性调整文件系统的容量,而不是数据的读写性能及安全性方面。
LV技术可以被认为是一种介于文件系统和内核之间的一层,lsblk -f 可以看到 LV 的文件系统在其之上。这样文件超级块中记录的磁盘信息,就不是真正的磁盘信息,而是LV那一层抽象给文件系统的。
---------------------------------------------------------------------------------------------------------
PV(physical volume 划分为PE ) --->  pvcreate, pvs, pvdisplay, pvremove, pvmove
创建PV的时候,可以用分区,磁盘,meta device 或loopback文件
1. 如果MBR分区的type不是8e会怎样? 如果GPT分区的type不是8e00会怎样?  <--- 并不影响
2. 分区粒度,如果存在文件系统,会怎样?    <---  LVM会检测到,并给出询问是否抹除;
3. 磁盘粒度,如果MBR 或 GPT 分区表还存在的话会怎样? 如果分区表和分区同时存在,为了防止数据被破坏,不会创建PV。如果只存在MBR分区表,则LVM会检查 MBR 512Byte 结尾的魔术字是否为0x55aa,如果是,则会提示有分区表存在。如果只存在GPT分区表,则不会创建PV。

pvs的结果如何得到的?---> pvs遍历磁盘,找到LVM2_member类型的分区或设备
pvcreate PARTITION
pvmove SRC_PV [DST_PV]  将PE从一个PV移出(需要有足够空间装这些来源PE),不指定DST_PV,则系统会自动分配. <--- 在线还是离线?影响LV工作否?
===============================================================
VG (volume group)---> vgcreate, vgextend, vgreduce, vgs, vgdisplay,
vgcreate VG_NAME Physical_Device_Path [PhysicalVolume...]  -s 指定  PE 大小,默认4M
vgextend VG_NAME Physical_Device_Path [PhysicalVolume...]  扩展VG, 即增加PV
vgreduce VG_NAME Physical_Device_Path [PhysicalVolume...]  缩减VG,即移出PV
VG 迁移
可以将 VG 从一台计算机迁移到另一台计算机,如果被迁移磁盘仅仅含属于该 VG 的 PE
1.  将属于该 VG 的 LV 卸载(umount)
2.   vgchange -a n my_VG     <---  即设置活动状态为no,执行后可用 lvdisplay 验证下,LV 的状态已经是 not available 了
3.   vgexport my_VG     <---  即导出 VG,可用 vgdisplay 验证下,VG 的状态已经是 exported 
4.  移出相关磁盘到新的计算机
5.  新的计算机上 vgimport my_VG
6.   vgchange -a y my_VG 
7.  如果使用该 LV,则挂载之 
===============================================================
LV (logical volume)---> lvcreate, lvextend,
lvcreate
lvcreate -L LV_SIZE -n LV_NAME VG_NAME [PV_NAME]   <--- 选项 L 指定size, l 指定PE个数
创建完成后设备文件位于:
/dev/VG_NAME/LV_NAME  或    /dev/mapper/VG_NAME-LV_NAME
lvextend  <--- 只能增加
lvextend -L [+]# /dev/VG_NAME/LV_NAME [PV_NAME]
lvextend 后,若有filesystem,其也要extend,ext文件系统使用
resize2fs /dev/VG_NAME/LV_NAME                    <--- resize2fs 等工具的作用可以对比操作前后的超级快中的数据
xfs文件系统使用xfs_grofs /dev/VG_NAME/LV_NAME
xfs_growfs /dev/VG_NAME/LV_NAME
fsadm 则同时支持 ext,xfs,ReiserFS
fsadm resize /dev/VG_NAME/LV_NAME new_size  //注意xfs 只能扩容不能缩容
或者 lvextend 加上 -r 选项可以同时 extend LV 和 filesystem
lvreduce  <--- 只能缩减
lvreduce -L [-]# /dev/VG_NAME/LV_NAME    <--- 不能指定PV,万一PV里面有filesystem数据呢
-r 选项同样可以同时reduce LV 和 filesystem
缩减lv不是问题,关键是文件系统的缩减。先缩减文件系统尺寸,然后缩减 LV 尺寸。
lvresize  <--- 可增加可缩减
-r 选项同样可以同时reduce LV 和 filesystem
===============================================================
LV 快照
快照是一种特殊的逻辑卷,与源 LV 处于同一个 VG 中
创建
lvcreate -L 200M -n my_snap_on_LV -p r -s /dev/my_VG/my_LV    <--- 创建完成后自动同步文件系统,不需要格式化
-s OriginalLogicalVolume 为源 LV 制作快照,快照和源 LV 处于同一个 VG 中
-p { r | rw }  设置逻辑卷 permission,默认rw。快照建议为 r ,或者 rw 但在挂载时设置为只读,避免人为写入数据。
恢复
恢复前,先解挂要恢复的逻辑卷
lvconvert --merge /dev/ my_VG/my_snap_on_LV












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值