RAID
磁盘阵列(Redundant Arrays of Independent Disks,RAID),全称独立磁盘冗余阵列。
磁盘阵列是由很多廉价的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
利用同位检查(ParityCheck)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上(冗余),输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。
分类:硬RAID:磁盘阵列柜、磁盘阵列卡 软RAID:软件实现
本篇只介绍常见的:RAID0、RAID1、RAID5、RAID6
RAID0
RAID0又称为Stripe或Striping,中文称之为条带化存储,它代表了所有RAID级别中最高的存储性能。是把连续的数据分散到多个磁盘上存取,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
磁盘空间 = 磁盘总量 = 100%
需要的磁盘数 ≥ 2
优点:
1、 充分利用I/O总线性能使其带宽翻倍,读/写速度翻倍。2、 充分利用磁盘空间,利用率为100%。
缺点:
1、 不提供数据冗余。2、 无数据检验,不能保证数据的正确性。
3、 存在单点故障。
RAID1
RAID1又称为Mirror或者Mirroring,中文称之为镜像存储。RAID1是磁盘阵列中单位成本最高的,磁盘利用率最低,但提供了很高的数据安全性和可用性。将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”通过镜像实现数据冗余,成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。最大允许互为镜像内的单个磁盘故障,如果出现互为镜像的两块磁盘故障则数据丢失。
磁盘空间 = 磁盘总量/2 = 50%
需要的磁盘数(n) ≥ 2*n
优点:
1、 提供数据冗余,数据双倍存储。2、 提供良好的读性能
缺点:
1、 无数据校验2、 磁盘利用率低,成本高
RAID-01
先做RAID 0再将RAID 0组合成RAID 1,拥有两种RAID的特性。
磁盘空间= n/2 = 50%4 ≥ 需要的磁盘数 ≥ 2*n
优点:
1、 较高的IO性能
2、 有数据冗余
3、 无单点故障
缺点:
1、 成本稍高2、 安全性比RAID 10 差
RAID-10
先做RAID 1再将RAID 1组合成RAID 0,拥有两种RAID的特性,安全性能高。
磁盘空间= n/2 = 50%4 ≤ 需要的磁盘数 ≥ 2*n
优点:
1、RAID10的读性能将优于RAID012、较高的IO性能
3、有数据冗余
4、 无单点故障
5、安全性能高
缺点:
成本稍高
RAID5
奇偶校验(XOR),RAID0和RAID1的折中方案。数据以块分段条带化存储。校验信息交叉地存储在所有的数据盘上。数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据
磁盘空间 = n-1需要的磁盘数 ≥ 3
优点:
1、 读写性能高2、 有校验机制
3、 磁盘空间利用率高
缺点:
磁盘越多安全性能越差RAID6
与RAID5相比,RAID6增加了第二个独立的奇偶校验信息块。双重奇偶校验。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID6需要分配给奇偶校验信息更大的磁盘空间,写性能比RAID5差。
磁盘空间 = n-2需要的磁盘数 ≥ 4
优点:
1、 良好的随机读性能2、 有校验机制
缺点:
1、 写入速度差2、 成本高
RAID-50
先做RAID 5再将RAID 5组合成RAID 0,拥有两种RAID的特性。
需要的磁盘数 ≥ 6
软RAID
RAID设备被命名为 md,mdadm 工具提供了软件实现RAID的功能。
语法:mdadm [模式] RAID [选项] 设备
1、构建RAID,并为RAID设备命名。
[root@CentOS6 ~]#echo "- -mdadm -C /dev/md0 -a yes -l5 -n3 -x1 -c32 /dev/sd{b,c,d,e} #将sdb、c、d做RAID5名为md0,sde为空闲盘
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@CentOS6 ~]#mkfs.ext4 /dev/md0 #在md0上创建ext4文件系统
……
[root@CentOS6 ~]#blkid
/dev/sda1: UUID="056668aa-7ecd-4235-8351-c8fb02372e3b" TYPE="ext4" LABEL="bootdisk"
/dev/sda2: UUID="481fa90c-b9f1-459b-ba67-f4f4c8d7942b" TYPE="ext4"
/dev/sda3: UUID="b98328eb-21c7-4114-b3d5-93cd4aec6bc8" TYPE="ext4" LABEL="app"
/dev/sda5: UUID="5a1eda5a-2e54-4d0c-b8ea-ef99b9ac3417" TYPE="swap"
/dev/sdb: UUID="612baa8e-e67f-8bb8-fa27-c39a34ec35d9" UUID_SUB="dc3f6167-386d-414b-356b-10a0af4584a9" LABEL="CentOS6.miriam:0" TYPE="linux_raid_member"
/dev/sdc: UUID="612baa8e-e67f-8bb8-fa27-c39a34ec35d9" UUID_SUB="eab8698b-d21a-8553-114b-0980c14916f6" LABEL="CentOS6.miriam:0" TYPE="linux_raid_member"
/dev/sdd: UUID="612baa8e-e67f-8bb8-fa27-c39a34ec35d9" UUID_SUB="6a20e49b-beca-9c7c-b14e-2611cadd3fb5" LABEL="CentOS6.miriam:0" TYPE="linux_raid_member"
/dev/md0: UUID="955ac152-589a-4717-9bbb-9e9510dd1b12" TYPE="ext4"
/dev/sde: UUID="612baa8e-e67f-8bb8-fa27-c39a34ec35d9" UUID_SUB="76d59026-fc76-0680-9ef8-01a3390270d2" LABEL="CentOS6.miriam:0" TYPE="linux_raid_member"
2、修改 /etc/fstab,添加RAID设备。
[root@CentOS6 ~]#vim /etc/fstab
#在/etc/fstab中添加:UUID=955ac152-589a-4717-9bbb-9e9510dd1b12 /mnt/md0 ext4 defaults 0 0
[root@CentOS6 ~]#mdadm -Ds /dev/md0 > /etc/mdadm.conf
[root@CentOS6 ~]#ll /etc/mdadm.conf
-rw-r--r--. 1 root root 100 Apr 2 16:36 /etc/mdadm.conf
3、查看指定RAID设备信息
[root@CentOS6 ~]#mdadm -D /dev/md0 #查看md0的详细信息
/dev/md0:
Version : 1.2
Creation Time : Mon Apr 2 16:27:51 2018
Raid Level : raid5
Array Size : 4190208 (4.00 GiB 4.29 GB)
Used Dev Size : 2095104 (2046.00 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Apr 2 16:31:58 2018
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 32K
Name : CentOS6.miriam:0 (local to host CentOS6.miriam)
UUID : 612baa8e:e67f8bb8:fa27c39a:34ec35d9
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
4、当 RAID 中有硬盘损坏,查看 RAID 信息确定损坏情况后移除对应硬盘,并添加新的硬盘。
[root@CentOS6 ~]#mdadm /dev/md0 -f /dev/sdd #模拟sdd硬盘损坏
mdadm: set /dev/sdd faulty in /dev/md0
[root@CentOS6 ~]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Apr 2 16:27:51 2018
Raid Level : raid5
Array Size : 4190208 (4.00 GiB 4.29 GB)
Used Dev Size : 2095104 (2046.00 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Apr 2 16:46:02 2018
State : clean, degraded, recovering #degraded:降级的,表明当前只是用了两块硬盘
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 32K
Rebuild Status : 71% complete
Name : CentOS6.miriam:0 (local to host CentOS6.miriam)
UUID : 612baa8e:e67f8bb8:fa27c39a:34ec35d9
Events : 31
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
3 8 64 2 spare rebuilding /dev/sde #状态表明其他硬盘正在反算原硬盘中的数据
4 8 48 - faulty /dev/sdd #状态表明为已损坏
[root@CentOS6 ~]#mdadm /dev/md0 -r /dev/sdd #移除sdd硬盘
mdadm: hot removed /dev/sdd from /dev/md0
[root@CentOS6 ~]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Apr 2 16:27:51 2018
Raid Level : raid5
Array Size : 4190208 (4.00 GiB 4.29 GB)
Used Dev Size : 2095104 (2046.00 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Mon Apr 2 16:46:57 2018
State : clean #状态为clean,说明备用新硬盘已经工作
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 32K
Name : CentOS6.miriam:0 (local to host CentOS6.miriam)
UUID : 612baa8e:e67f8bb8:fa27c39a:34ec35d9
Events : 38
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
3 8 64 2 active sync /dev/sde #反算结束,原硬盘中数据已恢复
[root@CentOS6 ~]#mdadm /dev/md0 -a /dev/sdd #将sdd新增加至md0
mdadm: added /dev/sdd
[root@CentOS6 ~]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Apr 2 16:27:51 2018
Raid Level : raid5
Array Size : 4190208 (4.00 GiB 4.29 GB)
Used Dev Size : 2095104 (2046.00 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Apr 2 16:47:32 2018
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 32K
Name : CentOS6.miriam:0 (local to host CentOS6.miriam)
UUID : 612baa8e:e67f8bb8:fa27c39a:34ec35d9
Events : 39
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb #因为设置为3块硬盘做的RAID5
1 8 32 1 active sync /dev/sdc
3 8 64 2 active sync /dev/sde
4 8 48 - spare /dev/sdd #所以sdd只能做空闲盘
5、停止RAID设备。
[root@CentOS6 ~]#umount /dev/md0 #在停止RAID时,首先要取消挂载
[root@CentOS6 ~]#mdadm -S /dev/md0 #停止md0
mdadm: stopped /dev/md0
[root@CentOS6 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 5.8G 0 rom /media/CDROM
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 3G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
[root@CentOS6 ~]#mdadm -A /dev/md0 #启用md0
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
[root@CentOS6 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 5.8G 0 rom /media/CDROM
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 3G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sdc 8:32 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sdd 8:48 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sde 8:64 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
LVM
LVM在每个物理卷头部都维护了一个metadata,每个metadata中都包含了整个VG(volume group:卷组)的信息,包括每个VG的布局配置,PV(physical volume:物理卷)的编号,LV(logical volume:逻辑卷)的编号,以及每个PE(physical extends:物理扩展单元)到LE(logical extends:物理扩展单元)的映射关系。同一个VG中的每个PV头部的信息都是相同的,这样有利于故障时进行数据恢复。
LVM对上层文件系统提供LV层,隐藏了操作细节。对文件系统而言,对LV的操作与原先对partition的操作没有差别。当对LV进行写入操作的时候,LVM定位相应的LE,通过PV头部的映射表将数据写入到相应的PE上。LVM实现的关LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。键在于PE和LE之间建立映射关系,不同的映射规则决定了不同的LVM存储模型。LVM支持多个PV 的stripe和mirror。
LVM最大的特点就是可以对磁盘进行动态管理,因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据,如果我们增加了硬盘也不会改变现有的上层逻辑卷。
优点:
1. 文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。2. 可以在系统运行的状态下动态的扩展文件系统的大小。
3. 可以增加新的磁盘到LVM的存储池中。
4. 可以以镜像的方式冗余重要的数据到多个物理磁盘。
5. 可以方便的导出整个卷组到另外一台机器。
缺点:
1. 在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。2. 当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
3. 因为加入了额外的操作,存贮性能受到影响。
pv物理卷管理
pvcreate命令用于创建pv。
语法:pvcreate 设备
[root@CentOS6 ~]#pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
pvs 或
pvdisplay命令用于显示pv 的信息。
[root@CentOS6 ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 ---- 2.00g 2.00g
/dev/sdc lvm2 ---- 2.00g 2.00g
/dev/sdd lvm2 ---- 2.00g 2.00gvh
vg卷组管理
vgcreate命令用于创建vg。
语法:vgcreate [-s] vgName pv
[root@CentOS6 ~]#vgcreate -s 10M vg0 /dev/sd{b,c,d} #-s选项后跟PE大小
Volume group "vg0" successfully created
vgs 或 vgdisplay命令用于显示 vg 的信息。
[root@CentOS6 ~]#vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 5.98 GiB
PE Size 10.00 MiB
Total PE 612
Alloc PE / Size 0 / 0
Free PE / Size 612 / 5.98 GiB
VG UUID 9tmr41-HuGf-3DaP-HmC1-mivO-FhCb-IUDbGJ
vgextend命令用于向卷组增加物理卷。
语法:vgextend vgName pv
[root@CentOS6 ~]#vgextend vg0 /dev/sde
Volume group "vg0" successfully extended
[root@CentOS6 ~]#vgs
VG #PV #LV #SN Attr VSize VFree
vg0 4 0 0 wz--n- 7.97g 7.97g
vgreduce命令用于将卷组中的物理卷移除。
语法:vgreduce vgName pv
[root@CentOS6 ~]#vgreduce vg0 /dev/sde
Removed "/dev/sde" from volume group "vg0"
[root@CentOS6 ~]#vgs
VG #PV #LV #SN Attr VSize VFree
vg0 3 0 0 wz--n- 5.98g 5.98g
lv逻辑卷管理命令
lvcreate命令用于创建逻辑卷。
语法:lvcreate 选项 参数 vgName
[root@CentOS6 ~]#lvcreate -L 3G -n lv0 vg0
Rounding up size to full physical extent 3.01 GiB
Logical volume "lv0" created.
[root@CentOS6 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID 23CmEh-EUbn-eix2-uIEG-QWfp-v4vv-P88Gas
LV Write Access read/write
LV Creation host, time CentOS6.miriam, 2018-04-03 16:27:04 +0800
LV Status available
# open 0
LV Size 3.01 GiB
Current LE 308
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
选项:
-l:以目标卷组指定容量的百分比进行划分
VG 整体容量
FREE 剩余容量
-L:以指定容量划分,+/-为增加/减少容量 不写为指定到容量
-n:指定逻辑卷名
lvs 或 lvdispaly命令用于显示 lv 的信息。
[root@CentOS6 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-a----- 3.01g
lvextend命令用于扩容逻辑卷。
语法:lvextend [-r] -L/-l 容量 逻辑卷
[root@CentOS6 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-a----- 3.01g
[root@CentOS6 ~]#lvextend -r -l +50%FREE /dev/vg0/lv0 #-r调整容量,在调整时自动会将新加入的卷组FS同化
fsck from util-linux-ng 2.17.2
/dev/mapper/vg0-lv0: clean, 11/197200 files, 29929/788480 blocks
Size of logical volume vg0/lv0 changed from 3.01 GiB (308 extents) to 4.49 GiB (460 extents).
Logical volume lv0 successfully resized.
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/vg0-lv0 to 1177600 (4k) blocks.
The filesystem on /dev/mapper/vg0-lv0 is now 1177600 blocks long.
[root@CentOS6 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-a----- 4.49g
resize2fs命令用于调整文件系统的大小。
一般情况下使用resize2fs前,命令会要求使用 fsck 对文件系统进行检查。
语法:resize2fs [选项] 设备 新容量
[root@CentOS6 ~]#resize2fs -p /dev/vg0/lv0 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/lv0 to 786432 (4k) blocks.
Begin pass 3 (max = 32)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/vg0/lv0 is now 786432 blocks long.
选项:
-f 强制开始文件系统重定义大小操作,推翻一些resize2fs平常的强制安全检查。
-F 开始之前排除文件系统设备的缓冲区的缓存。真正只对resize2fs的时间检验有用。
-M 减小文件系统到最小的大小。
-p 为了每一个resize2fs操作打印一个百分比完成条,因此用户可以保持注意程序正在运作的动态。
lvreduce命令用于缩减逻辑卷容量。
先卸载!!!
语法:lvreduce -L [-]容量 逻辑卷
[root@CentOS6 ~]#lvreduce -L 3G /dev/vg0/lv0
Rounding size to boundary between physical extents: 3.01 GiB.
WARNING: Reducing active logical volume to 3.01 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/lv0? [y/n]: y
Size of logical volume vg0/lv0 changed from 4.49 GiB (460 extents) to 3.01 GiB (308 extents).
Logical volume lv0 successfully resized.
[root@CentOS6 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-a----- 3.01g
LVM常用操作
将逻辑卷中的物理卷移除
[root@CentOS6 ~]#pvmove /dev/sdd #将sdd硬盘中的数据移动到对应的逻辑卷中
/dev/sdd: Moved: 5.8%
/dev/sdd: Moved: 100.0%
[root@CentOS6 ~]#vgreduce vg0 /dev/sdd
Removed "/dev/sdd" from volume group "vg0"
[root@CentOS6 ~]#pvremove /dev/sdd #移除sdd硬盘中的pv属性
Labels on physical volume "/dev/sdd" successfully wiped
重命名卷组、逻辑卷
[root@CentOS6 ~]#vgrename vg0 CentOSvg0 #可以写卷名
Volume group "vg0" successfully renamed to "CentOSvg0"
[root@CentOS6 ~]#vgs
VG #PV #LV #SN Attr VSize VFree
CentOSvg0 2 1 0 wz--n- 3.98g 1000.00m
[root@CentOS6 ~]#lvrename /dev/CentOSvg0/lv0 /dev/CentOSvg0/6_lv0 #只能写路径
Renamed "lv0" to "6_lv0" in volume group "CentOSvg0"
[root@CentOS6 ~]#lvs /dev/CentOSvg0/6_lv0
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
6_lv0 CentOSvg0 -wi-a----- 3.01g
跨主机迁移卷组
1、设置需要迁移的卷组
注意目的主机中是否有同名的卷名,有的话改名后再进行迁移
[root@CentOS6 ~]#vgchange -an CentOSvg0 #冻结需要迁移的卷组
0 logical volume(s) in volume group "CentOSvg0" now active
[root@CentOS6 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/CentOSvg0/6_lv0
LV Name 6_lv0
VG Name CentOSvg0
LV UUID 23CmEh-EUbn-eix2-uIEG-QWfp-v4vv-P88Gas
LV Write Access read/write
LV Creation host, time CentOS6.miriam, 2018-04-03 16:27:04 +0800
LV Status NOT available #逻辑卷状态为“非活动”
LV Size 3.01 GiB
Current LE 308
Segments 2
Allocation inherit
Read ahead sectors auto
[root@CentOS6 ~]#vgexport CentOSvg0 #将卷组导出,此时便可以拆除硬盘
Volume group "CentOSvg0" successfully exported
2、将硬盘迁移到目的主机
[root@CentOS7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 2.4G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 20G 0 part /data
sdb 8:16 0 2G 0 disk #目的主机已识别硬盘
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sr0 11:0 1 8.1G 0 rom /run/media/root/CentOS 7 x86_64
[root@CentOS7 ~]# pvdisplay
Physical volume "/dev/sdb" of volume group "CentOSvg0" is exported
--- Physical volume ---
PV Name /dev/sdb
VG Name CentOSvg0 (exported) #物理卷仍是导出状态
PV Size 2.00 GiB / not usable 8.00 MiB
Allocatable yes (but full)
PE Size 10.00 MiB
Total PE 204
Free PE 0
Allocated PE 204
PV UUID zspkge-kxHA-OZ2b-4xou-MsUG-qpuq-64eoRf
Physical volume "/dev/sdd" of volume group "CentOSvg0" is exported
--- Physical volume ---
PV Name /dev/sdd
VG Name CentOSvg0 (exported)
PV Size 2.00 GiB / not usable 8.00 MiB
Allocatable yes
PE Size 10.00 MiB
Total PE 204
Free PE 100
Allocated PE 104
PV UUID NneEqT-t8sI-WJzk-1i96-5R4m-QhW3-XY2Hkb
"/dev/sde" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sde
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID hGJFGk-ro4T-8o0U-Ae9K-3ANb-mB8U-hHwTdo
3、激活卷组,启用逻辑卷
[root@CentOS7 ~]# vgimport CentOSvg0 #导入卷组
Volume group "CentOSvg0" successfully imported
[root@CentOS7 ~]# vgchange -ay CentOSvg0 #激活卷组
1 logical volume(s) in volume group "CentOSvg0" now active
[root@CentOS7 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/CentOSvg0/6_lv0
LV Name 6_lv0
VG Name CentOSvg0
LV UUID 23CmEh-EUbn-eix2-uIEG-QWfp-v4vv-P88Gas
LV Write Access read/write
LV Creation host, time CentOS6.miriam, 2018-04-03 16:27:04 +0800
LV Status available #逻辑卷状态已启用
# open 0
LV Size <3.01 GiB
Current LE 308
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
逻辑卷快照
snaphot:关于指定数据集合的一个完全可用的拷贝,该拷贝包括相应数据在某个时间点(拷贝的时间点)的映像。快照可以是其所表示的数据的一个副本也可以是数据的一个复制品。从具体细节上说,快照是指向保存在存储设备中的数据的引用标记或指针。
如果快照逻辑卷变满,它将被丢弃变得不可用,因此分配给快照足够的空间是非常重要的。所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。如果快照的大小等于原始卷的大小那么快照永远可用。
当创建快照的时候,仅拷贝原始卷里数据的元数据。并不会有数据的物理拷贝,因此快照的创建几乎是实时的。当原始卷上有写操作时,快照跟踪原始卷块的改变,此时原始卷上将要改变的数据在改变之前被拷贝到快照的空间里。因此这个原理的实现叫做写时复制(CoW)。使用CoW时,快照大小并不需要和原始卷一样大,其大小只需考虑两个方面:从快照创建到释放的这段时间内数据块的改变量有多大,数据更新的频率。一旦快照的空间记录满了原始卷数据块的改变的信息,那么这个快照就无效了。
在写操作写入块之前,CoW将原始数据移动到快照空间里,这样就保证了所有的数据在快照创建时候保持一致性,而对于快照的读操作,如果是读取的数据块是没有修改过的,那么就会将读操作直接重定向到原始卷上,如果是读取已经修改过的数据快,那么就读取拷贝到快照上的数据快。
当删除逻辑卷的时候,在该逻辑卷上创建的所有快照会被全部删除。
创建逻辑卷快照与创建逻辑卷操作一样,只需要添加 -s 选项,但是创建之前要确保卷组中有足够的空间。
[root@CentOS7 ~]# lvcreate -n 6_lv0_snapshot -s -L 1G /dev/CentOSvg0/6_lv0 #使用-s选项创建逻辑卷快照
Using default stripesize 64.00 KiB.
Rounding up size to full physical extent <1.01 GiB
Logical volume "6_lv0_snapshot" created.
[root@CentOS7 ~]# lvdisplay
--- Logical volume --- #逻辑卷信息
LV Path /dev/CentOSvg0/6_lv0
LV Name 6_lv0
VG Name CentOSvg0
LV UUID 23CmEh-EUbn-eix2-uIEG-QWfp-v4vv-P88Gas
LV Write Access read/write
LV Creation host, time CentOS6.miriam, 2018-04-03 16:27:04 +0800
LV snapshot status source of #说明该逻辑卷拥有快照
6_lv0_snapshot [active]
LV Status available
# open 1
LV Size <3.01 GiB
Current LE 308
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume --- #逻辑卷快照信息
LV Path /dev/CentOSvg0/6_lv0_snapshot
LV Name 6_lv0_snapshot
VG Name CentOSvg0
LV UUID RtiT2V-YrRk-b1s0-tjIP-2DW1-PtV5-8PpUoq
LV Write Access read/write
LV Creation host, time CentOS7.miriam, 2018-04-28 21:08:18 +0800
LV snapshot status active destination for 6_lv0
LV Status available
# open 0
LV Size <3.01 GiB
Current LE 308
COW-table size <1.01 GiB
COW-table LE 103
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
创建快照时,逻辑卷中有 file1..5 五个文件,挂载后查看两个文件夹。
[root@CentOS7 lv0]# ls /mnt/lv0/ /mnt/snap/
/mnt/lv0/:
file1 file2 file3 file4 file5 lost+found
/mnt/snap/:
file1 file2 file3 file4 file5 lost+found
快照成功~~