在Centos中创建LVM镜像的实现软RAID
在计算机世界中,存储是最重要的因素。如果数据丢失,那么组织或公司的一切都将丢失。最初,数据存储在普通磁盘中,它不具有管理数据的灵活性,并且非常复杂,并且对恢复管理造成灾难。为了实现灾难恢复管理的灵活性和目标,引入了RAID。使用RAID,可以维持冗余,但仍然没有灵活性来管理文件系统和存储管理。逻辑卷管理器(LVM)提供磁盘存储的更高级别的视图。传统上,LVM与包含许多磁盘的大型安装相关联,甚至在很小的环境中也可以完全使用。
LVM具有许多功能,例如通过吸收新的物理卷(PV)在线调整卷组的大小或删除现有的PV,以及通过向现有LV添加或删除物理盘区来在线调整逻辑卷(LV)的大小。使用LVM,您可以创建LV的只读快照和读写快照。可以跨多个PV分段或镜像LV的全部或部分,类似于RAID 0或RAID1。可以在PV之间移动联机LV。LVM也将在共享存储群集中工作。下面开始创建LVM镜像。
一、创建分区
要创建LVM镜像,您需要确保有可用空间。在这里将使用两个新的4TB硬盘并使用fdisk命令创建分区(您可以使用一个分区或整个磁盘)。在创建分区之前,请确保已使用了多少个柱面以及有多少个空闲柱面。
检查可用磁盘或空间以创建分区。
[root@localhost ~]# fdisk -l
Disk /dev/sda:3.7 TiB,4000787030016 字节,7814037168 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:8CA29BE5-5A9C-461C-B0E8-9E0B99C7009D
Disk /dev/sdb:3.7 TiB,4000787030016 字节,7814037168 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:AD586662-69DF-11EA-8713-DF60956121FE
使用fdisk创建两个磁盘分区。
[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
分区号 (1-128, 默认 1): 1
第一个扇区 (34-7814037134, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-7814037134, 默认 7814037134):
创建了一个新分区 1,类型为“Linux filesystem”,大小为 3.7 TiB。
命令(输入 m 获取帮助):t
已选择分区 1
分区类型(输入 L 列出所有类型):31
已将分区“Linux filesystem”的类型更改为“Linux LVM”。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
注:帮助:
GPT
M 进入 保护/混合 MBR
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
分区类型(输入 L 列出所有类型):L
1 EFI System C12A7328-F81F-11D2-BA4B-00A0C93EC93B
2 MBR partition scheme 024DEE41-33E7-11D3-9D69-0008C781F39F
3 Intel Fast Flash D3BFE2DE-3DAF-11DF-BA40-E3A556D89593
4 BIOS boot 21686148-6449-6E6F-744E-656564454649
5 Sony boot partition F4019732-066E-4E12-8273-346C5641494F
6 Lenovo boot partition BFBFAFE7-A34F-448A-9A5B-6213EB736C22
7 PowerPC PReP boot 9E1A2D38-C612-4316-AA26-8B49521E5A8B
8 ONIE boot 7412F7D5-A156-4B13-81DC-867174929325
9 ONIE config D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149
10 Microsoft reserved E3C9E316-0B5C-4DB8-817D-F92DF00215AE
11 Microsoft basic data EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
12 Microsoft LDM metadata 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
13 Microsoft LDM data AF9B60A0-1431-4F62-BC68-3311714A69AD
14 Windows recovery environment DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
15 IBM General Parallel Fs 37AFFC90-EF7D-4E96-91C3-2D7AE055B174
16 Microsoft Storage Spaces E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D
17 HP-UX data 75894C1E-3AEB-11D3-B7C1-7B03A0000000
18 HP-UX service E2A1E728-32E3-11D6-A682-7B03A0000000
19 Linux swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
20 Linux filesystem 0FC63DAF-8483-4772-8E79-3D69D8477DE4
21 Linux server data 3B8F8425-20E0-4F3B-907F-1A25A76F98E8
22 Linux root (x86) 44479540-F297-41B2-9AF7-D131D5F0458A
23 Linux root (ARM) 69DAD710-2CE4-4E3C-B16C-21A1D49ABED3
24 Linux root (x86-64) 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
25 Linux root (ARM-64) B921B045-1DF0-41C3-AF44-4C6F280D3FAE
26 Linux root (IA-64) 993D8D3D-F80E-4225-855A-9DAF8ED7EA97
27 Linux reserved 8DA63339-0007-60C0-C436-083AC8230908
28 Linux home 933AC7E1-2EB4-4F13-B844-0E14E2AEF915
29 Linux RAID A19D880F-05FC-4D3B-A006-743F0F84911E
30 Linux extended boot BC13C2FF-59E6-4262-A352-B275FD6F7172
31 Linux LVM E6D6D379-F507-44C2-A23C-238F2A3DF928
32 FreeBSD data 516E7CB4-6ECF-11D6-8FF8-00022D09712B
33 FreeBSD boot 83BD6B9D-7F41-11DC-BE0B-001560B84F0F
34 FreeBSD swap 516E7CB5-6ECF-11D6-8FF8-00022D09712B
35 FreeBSD UFS 516E7CB6-6ECF-11D6-8FF8-00022D09712B
36 FreeBSD ZFS 516E7CBA-6ECF-11D6-8FF8-00022D09712B
37 FreeBSD Vinum 516E7CB8-6ECF-11D6-8FF8-00022D09712B
38 Apple HFS/HFS+ 48465300-0000-11AA-AA11-00306543ECAC
39 Apple UFS 55465300-0000-11AA-AA11-00306543ECAC
40 Apple RAID 52414944-0000-11AA-AA11-00306543ECAC
41 Apple RAID offline 52414944-5F4F-11AA-AA11-00306543ECAC
42 Apple boot 426F6F74-0000-11AA-AA11-00306543ECAC
43 Apple label 4C616265-6C00-11AA-AA11-00306543ECAC
44 Apple TV recovery 5265636F-7665-11AA-AA11-00306543ECAC
45 Apple Core storage 53746F72-6167-11AA-AA11-00306543ECAC
46 Solaris boot 6A82CB45-1DD2-11B2-99A6-080020736631
47 Solaris root 6A85CF4D-1DD2-11B2-99A6-080020736631
48 Solaris /usr & Apple ZFS 6A898CC3-1DD2-11B2-99A6-080020736631
49 Solaris swap 6A87C46F-1DD2-11B2-99A6-080020736631
50 Solaris backup 6A8B642B-1DD2-11B2-99A6-080020736631
51 Solaris /var 6A8EF2E9-1DD2-11B2-99A6-080020736631
52 Solaris /home 6A90BA39-1DD2-11B2-99A6-080020736631
53 Solaris alternate sector 6A9283A5-1DD2-11B2-99A6-080020736631
54 Solaris reserved 1 6A945A3B-1DD2-11B2-99A6-080020736631
55 Solaris reserved 2 6A9630D1-1DD2-11B2-99A6-080020736631
56 Solaris reserved 3 6A980767-1DD2-11B2-99A6-080020736631
57 Solaris reserved 4 6A96237F-1DD2-11B2-99A6-080020736631
58 Solaris reserved 5 6A8D2AC7-1DD2-11B2-99A6-080020736631
59 NetBSD swap 49F48D32-B10E-11DC-B99B-0019D1879648
60 NetBSD FFS 49F48D5A-B10E-11DC-B99B-0019D1879648
61 NetBSD LFS 49F48D82-B10E-11DC-B99B-0019D1879648
62 NetBSD concatenated 2DB519C4-B10E-11DC-B99B-0019D1879648
63 NetBSD encrypted 2DB519EC-B10E-11DC-B99B-0019D1879648
64 NetBSD RAID 49F48DAA-B10E-11DC-B99B-0019D1879648
65 ChromeOS kernel FE3A2A5D-4F32-41A7-B725-ACCC3285A309
66 ChromeOS root fs 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
67 ChromeOS reserved 2E0A753D-9E48-43B0-8337-B15192CB1B5E
68 MidnightBSD data 85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7
69 MidnightBSD boot 85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7
70 MidnightBSD swap 85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7
71 MidnightBSD UFS 0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7
72 MidnightBSD ZFS 85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7
73 MidnightBSD Vinum 85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7
74 Ceph Journal 45B0969E-9B03-4F30-B4C6-B4B80CEFF106
75 Ceph Encrypted Journal 45B0969E-9B03-4F30-B4C6-5EC00CEFF106
76 Ceph OSD 4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D
77 Ceph crypt OSD 4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D
78 Ceph disk in creation 89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE
79 Ceph crypt disk in creation 89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE
80 VMware VMFS AA31E02A-400F-11DB-9590-000C2911D1B8
81 VMware Diagnostic 9D275380-40AD-11DB-BF97-000C2911D1B8
82 VMware Virtual SAN 381CFCCC-7288-11E0-92EE-000C2911D0B2
83 VMware Virsto 77719A0C-A4A0-11E3-A47E-000C29745A24
84 VMware Reserved 9198EFFC-31C0-11DB-8F78-000C2911D1B8
85 OpenBSD data 824CC7A0-36A8-11E3-890A-952519AD3F61
86 QNX6 file system CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1
87 Plan 9 partition C91818F9-8025-47AF-89D2-F030D7000C2C
重新查看核对新建的分区
[root@localhost ~]# fdisk -l
Disk /dev/sda:3.7 TiB,4000787030016 字节,7814037168 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:8CA29BE5-5A9C-461C-B0E8-9E0B99C7009D
设备 起点 末尾 扇区 大小 类型
/dev/sda1 2048 7814037134 7814035087 3.7T Linux LVM
Disk /dev/sdb:3.7 TiB,4000787030016 字节,7814037168 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:AD586662-69DF-11EA-8713-DF60956121FE
设备 起点 末尾 扇区 大小 类型
/dev/sdb1 2048 7814037134 7814035087 3.7T Linux LVM
到此分区就创建好了。
二、创建LVM 物理卷
现在已经有了可用的分区,需要使用上面的分区创建物理卷。
[root@localhost ~]# pvcreate /dev/sda1 /dev/sdb1
Physical volume "/dev/sda1" successfully created.
Physical volume "/dev/sdb1" successfully created.
上面的命令会将分区初始化为LVM分区。在此,LVM仅将PV和UUID分配给分区。
三、创建LVM卷组
现在已经创建了物理卷,我们需要创建一个卷组。如果已经具有基于两个或更多具有可用空间的磁盘/分区的VG,则无需创建新的卷组。
[root@localhost ~]# vgcreate vg_data /dev/sda1 /dev/sdb1
Volume group "vg_data" successfully created
上面的命令将创建卷组为vg_data。LVM创建卷组描述符区域(VGDA)。VGDA包含有关卷组的信息。LVM创建物理范围(PE)。
四、创建LVM镜像逻辑卷
在特定的卷组中创建镜像卷时,必须使用-m|vcreate命令的参数指定所需数据的副本数。要创建1个数据的镜像副本,您必须指定为-m1。指定将-m1创建一个镜像,这将产生文件系统的两个副本。
[root@localhost ~]# lvcreate -m1 -l 100%VG -n lv_data vg_data
Logical volume "lv_data" created.
注:
-m:指定数据的镜像副本数
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l:指定逻辑卷的大小(LE数,100%VG使用VG100%的空间创建逻辑卷,100%FREE使用VG100%的剩下所有空间创建逻辑卷)
-n: 指定逻辑卷的名字
在上面的命令中,创建了两个磁盘所有空间的LV,其中包含1个要维护的数据副本。我们可以检查
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home cl -wi-ao---- 30.00g
root cl -wi-ao---- 72.50g
swap cl -wi-ao---- <7.70g
lv_data vg_data rwi-a-r--- <3.64t 0.75
也可以使用lvdisplay命令检查镜像LV的状态。只需搜索与之前创建的逻辑卷有关的信息,如下所示
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg_data/lv_data
LV Name lv_data
VG Name vg_data
LV UUID 1BLkUe-Po09-Jwkg-zp5t-afve-dkdQ-gD803o
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-03-21 14:21:08 +0800
LV Status available
# open 0
LV Size <3.64 TiB
Current LE 953860
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:7
您可以看到Mirrored volumes 2显示逻辑卷所用磁盘数量的行,我们还可以显示逻辑卷类型的其他信息。
五、创建文件系统并挂载
现在已经创建了逻辑卷,需要创建一个文件系统以便对其进行访问
[root@localhost ~]# mkfs.xfs /dev/vg_data/lv_data
meta-data=/dev/vg_data/lv_data isize=512 agcount=4, agsize=244188160 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=976752640, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=476930, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
现在我们可以将文件系统挂载到我们选择的位置。挂载文件系统的最常用方法是手动或使用mount命令或在其中添加条目,/etc/fstab以便在引导时挂载文件系统。
将文件系统挂载到/data目录,并进行验证。
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/mapper/vg_data-lv_data /data
[root@localhost ~]# df -Ph
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.6G 0 7.6G 0% /dev
tmpfs 7.6G 0 7.6G 0% /dev/shm
tmpfs 7.6G 25M 7.6G 1% /run
tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup
/dev/mapper/cl-root 73G 2.2G 71G 4% /
/dev/mapper/cl-home 30G 247M 30G 1% /home
/dev/sdc2 976M 167M 743M 19% /boot
/dev/sdc1 599M 6.8M 593M 2% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/vg_data-lv_data 3.7T 27G 3.7T 1% /data
修改 /etc/fstab文件以便在引导时挂载。
[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Mar 20 04:56:25 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=48d8535e-d0ed-44d5-a308-5850282ef28c /boot ext4 defaults 1 2
UUID=C74B-84AB /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/cl-home /home xfs defaults 0 0
/dev/mapper/cl-swap swap swap defaults 0 0
/dev/mapper/vg_data-lv_data /data xfs defaults 0 0
完成后,再次执行df -h命令检查挂载情况。如正常挂载即可。
发表评论