Linux基础命令-RAID和LVM

RAID和LVM

一、RAID

1.RAID

1.RAID:Redundant Arrays of Inexpensive(Independent) Disks
2.1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) “A Case for Redundant Arrays of Inexpensive Disks”
3.多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
3.提高IO能力
	磁盘并行读写
4.提高耐用性
	磁盘冗余来实现
5.级别:多块磁盘组织在一起的工作方式有所不同
6.RAID实现的方式
	外接式磁盘阵列:通过扩展卡提供适配能力
	内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
	软件RAID:通过OS实现
7.(RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-2
..
RAID-5
RAID-6
RAID-10
RAID-01)
1.RAID-0:
	读、写性能提升
	可用空间:N*min(S1,S2,...)
	无容错能力
	最少磁盘数:2, 2+

在这里插入图片描述

2.RAID-1:
	读性能提升、写性能略有下降
	可用空间:1*min(S1,S2,...)
	有冗余能力
	最少磁盘数:2, 2N
3.RAID-4:
	多块数据盘异或运算值存于专用校验盘

在这里插入图片描述

4.RAID-5:
	读、写性能提升
	可用空间:(N-1)*min(S1,S2,...)
	有容错能力:允许最多1块磁盘损坏
	最少磁盘数:3, 3+

在这里插入图片描述

5.RAID-6:
	读、写性能提升
	可用空间:(N-2)*min(S1,S2,...)
	有容错能力:允许最多2块磁盘损坏
	最少磁盘数:4, 4+

在这里插入图片描述

6.RAID-10:
	读、写性能提升
	可用空间:N*min(S1,S2,...)/2
	有容错能力:每组镜像最多只能坏一块
	最少磁盘数:4, 4+

在这里插入图片描述

7.RAID-01
	多块磁盘先实现RAID0,再组合成RAID1

在这里插入图片描述

8.RAID-50
	多块磁盘先实现RAID5,再组合成RAID0

在这里插入图片描述

9.JBOD:Just a Bunch Of Disks
	功能:将多块磁盘的空间合并一个大的连续空间使用
	可用空间:sum(S1,S2,...)

在这里插入图片描述

10.RAID7
	可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
	常用级别:
	RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

2.软RAID

1.mdadm:为软RAID提供管理界面
2.为空余磁盘添加冗余
3.结合内核中的md(multi devices)
4.RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
mdadm:模式化的工具
命令的语法格式:mdadm [mode] <raiddevice> [options] <componentdevices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
模式:
	创建:-C
	装配:-A
	监控:-F
	管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
创建模式
	-C:
	-n #: 使用#个块设备来创建此RAID
	-l #:指明要创建的RAID的级别
	-a {yes|no}:自动创建目标RAID设备的设备文件
	-c CHUNK_SIZE: 指明块大小,单位k
	-x #: 指明空闲盘的个数
	-D:显示raid的详细信息
	mdadm -D /dev/md#
管理模式:
	-f: 标记指定磁盘为损坏
	-a: 添加磁盘
	-r: 移除磁盘
观察md的状态: cat /proc/mdstat

例子:
1)使用mdadm创建并定义RAID设备
	mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
2)用文件系统对每个RAID设备进行格式化
	mkfs.xfs /dev/md0
3)测试RAID设备
	使用mdadm检查RAID设备的状况
	mdadm --detail|D /dev/md0
4)增加新的成员
	mdadm –G /dev/md0 –n4 -a /dev/sdf1
5)模拟磁盘故障
	mdadm /dev/md0 -f /dev/sda1
6)移除磁盘
	mdadm /dev/md0 –r /dev/sda1
7)从软件RAID磁盘修复磁盘故障
	替换出故障的磁盘然后开机
	在备用驱动器上重建分区
	mdadm /dev/md0 -a /dev/sda1
8)mdadm、/proc/mdstat及系统日志信息
9)生成配置文件:mdadm –D –s >> /etc/mdadm.conf
10)停止设备:mdadm –S /dev/md0
11)激活设备:mdadm –A –s /dev/md0 激活
12)强制启动:mdadm –R /dev/md0
13)删除raid信息:mdadm --zero-superblock /dev/sdb1

3.硬RAID

查看优秀作品:https://blog.csdn.net/niufenger/article/details/80709249

二、LVM

1. 逻辑卷管理器(LVM)

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
	• 将设备指定为物理卷
	• 用一个或者多个物理卷来创建一个卷组
	• 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
	• 在物理卷上创建的逻辑卷是由物理区域(PE)组成
	• 可以在逻辑卷上创建文件系统
LVM: Logical Volume Manager, Version 2
	dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
	/dev/mapper/VG_NAME-LV_NAME
		/dev/mapper/vol0-root
	/dev/VG_NAME/LV_NAME
		/dev/vol0/root

在这里插入图片描述

LVM可以弹性的更改LVM的容量通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
在这里插入图片描述

2. pv管理工具

1.显示pv信息
	pvs:简要pv信息显示
	pvdisplay
2.创建pv
	pvcreate /dev/DEVICE
3.删除pv
	pvremove /dev/DEVICE

3. vg管理工具

1.显示卷组
	vgs
	vgdisplay
2.创建卷组
	vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName
	PhysicalDevicePath [PhysicalDevicePath...]
3.管理卷组
	vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
	vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
4.删除卷组
	先做pvmove,再做vgremove

4. lv管理工具

1.显示逻辑卷
	lvs
	Lvdisplay
2.创建逻辑卷
	lvcreate -L #[mMgGtT] -n NAME VolumeGroup
	lvcreate -l 60%VG -n mylv testvg
	lvcreate -l 100%FREE -n yourlv testvg
3.删除逻辑卷
	lvremove /dev/VG_NAME/LV_NAME
4.重设文件系统大小
	fsadm [options] resize device [new_size[BKMGTEP]]
	resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
	xfs_growfs /mountpoint

5. 扩展和缩减逻辑卷

1.扩展逻辑卷:
	lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
	resize2fs /dev/VG_NAME/LV_NAME
	lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
2.缩减逻辑卷:
	umount /dev/VG_NAME/LV_NAME
	e2fsck -f /dev/VG_NAME/LV_NAME
	resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
	lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
	mount

6. 跨主机迁移卷组

源计算机上
	1 在旧系统中,umount所有卷组上的逻辑卷
	2 禁用卷组
		vgchange –a n vg0
		lvdisplay
	3 导出卷组
		vgexport vg0
		pvscan
		vgdisplay
拆下旧硬盘
在目标计算机上
	4 在新系统中安装旧硬盘,并导入卷组:vgimport vg0
	5 vgchange –ay vg0 启用
	6 mount所有卷组上的逻辑卷

8.创建逻辑卷示例

1.创建物理卷
	pvcreate /dev/sda3
2.为卷组分配物理卷
	vgcreate vg0 /dev/sda3
3.从卷组创建逻辑卷
	lvcreate -L 256M -n data vg0
	mkfs.xfs /dev/vg0/data
4.挂载
	mount /dev/vg0/data /mnt/data

7.逻辑卷管理器快照

1.快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
2.对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适的选择
3.快照只有在它们和原来的逻辑卷不同时才会消耗空间
	在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
	当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中
	快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
	建立快照的卷大小小于等于原始逻辑卷,也可以使用lvextend扩展快照

1.快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
2.由于快照区与原本的LV共用很多PE的区块,因此快照与被快照的LV必须在同一个VG中.系统恢复的时候的文件数量不能高于快照区的实际容量
在这里插入图片描述

1.为现有逻辑卷创建快照
	lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data
2.挂载快照
	mkdir -p /mnt/snap
	mount -o ro /dev/vg0/data-snapshot /mnt/snap
3.恢复快照
	umount /dev/vg0/data-snapshot
	umount /dev/vg0/data
	lvconvert --merge /dev/vg0/data-snapshot
4.删除快照
	umount /mnt/databackup
	lvremove /dev/vg0/databackup

三、练习

1.创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
2.创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录
3.创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
4.新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
5.扩展testlv至7G,要求archlinux用户的文件不能丢失
6.收缩testlv至3G,要求archlinux用户的文件不能丢失
7.对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
发布了12 篇原创文章 · 获赞 4 · 访问量 942

猜你喜欢

转载自blog.csdn.net/qq_41596208/article/details/103939514