在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命令检查挂载情况。如正常挂载即可。

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注