如何在RAID之上的循环设备和LVM上创建RAID。

时间:2020-03-21 11:44:02  来源:igfitidea点击:

注意,本文是实验性的,谨慎参考。

我在实验室中曾经做过许多实验性工作,而这仅仅是其中之一。
我们已经对分区,RAID和LVM进行了深入的研究和了解。
众所周知,一旦我们在RAID之上创建了LVM,将任何其他卷添加到RAID变得非常容易。
现在,我们将不再使用真实设备或者真实分区,而是使用循环设备。
然后,在创建循环设备之后,我们将在循环设备上创建RAID,然后在RAID之上创建LVM。

逐步说明:

  • 首先,我们需要创建回路设备:
  • 然后,我们可以使用这些循环设备创建新的阵列,或者可以说创建RAID设备。
  • 之后,我们需要初始化物理卷(PV)。
  • 然后,我们可以创建卷组(VG)。
  • 之后,我们将创建逻辑卷(LVM)。
  • 现在,我们可以调整RAID阵列的大小。
  • 我们还可以调整LVM和RAID的大小,并可以在进行每次更改后轻松测试或者验证其大小。
  • 完成此实验性实验室之后,我们可以通过给定的过程删除所有这些,这是我最后在本文中提到的。

首先使用dd命令创建三个200mb文件。

使用dd(磁盘转储命令,我们将创建三个文件,每个文件的大小为200MB)

[root@satish ~]# dd if=/dev/zero of=raid-0 bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 0.554498 seconds, 378 MB/s

[root@satish ~]# cp raid-0 raid-1
[root@satish ~]# cp raid-0 raid-2

通过使用lostup命令将它们转换成循环设备,使用三个以上的200mb文件创建初始阵列。

losttup命令用于在Linux中创建循环设备。

[root@satish ~]# losetup /dev/loop0 raid-0
[root@satish ~]# losetup /dev/loop1 raid-1
[root@satish ~]# losetup /dev/loop2 raid-2

使用这三个回路设备创建新的阵列。

[root@satish ~]# mdadm --create --verbose /dev/md5 --level=5  --raid-devices=3 /dev/loop0 /dev/loop1 /dev/loop2
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: size set to 204736K
mdadm: array /dev/md5 started.

使用madam命令,我们使用名为/dev/loop0/dev/loop1和/dev/loop2的三个循环设备创建了raid5软件。
现在创建raid之后,我们需要确认raid是否已正确配置,因此我们需要对其进行测试,我们可以使用带有选项--detail的mdadm命令以非常简单的方式对其进行检查,如下所述。

现在详细检查创建的RAID设备。

[root@satish ~]# mdadm --detail /dev/md5
/dev/md5:
        Version : 0.90
  Creation Time : Wed May 31 16:21:01 2013
     Raid Level : raid5
     Array Size : 409472 (399.94 MiB 419.30 MB)
  Used Dev Size : 204736 (199.97 MiB 209.65 MB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 5
    Persistence : Superblock is persistent
    Update Time : Wed May 31 16:22:36 2013
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
         Layout : left-symmetric
     Chunk Size : 64K
           UUID : 592f15a1:dba02592:c3b644ca:412e7cf4
         Events : 0.2
    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2

上面的输出清楚地告诉我们,三个设备/dev/loop0/dev/loop1和/dev/loop2在raid数组中处于活动状态。

现在初始化物理卷(PV)并创建卷组(VG)

[root@satish ~]# pvcreate /dev/md5
  Physical volume "/dev/md5" successfully created

[root@satish ~]# pvdisplay
  "/dev/md5" is a new physical volume of "399.88 MB"
  --- NEW Physical volume --
  PV Name               /dev/md5
  VG Name               
  PV Size               399.88 MB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               ytsDuk-Z1BG-S3tO-3mMy-wAQv-kuTZ-3a5TbM

[root@satish ~]# vgcreate lvm-satish /dev/md5
  Volume group "lvm-satish" successfully created

[root@satish ~]# vgdisplay
  --- Volume group --
  VG Name               lvm-satish
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               396.00 MB
  PE Size               4.00 MB
  Total PE              99
  Alloc PE/Size       0/0   
  Free  PE/Size       99/396.00 MB
  VG UUID               N0d0YK-9sGO-v8jY-9kSL-rFfx-lLCA-VnCqYP

创建并检查lvm卷。

[root@satish ~]# lvcreate -l 60 lvm-satish -n lvm0
  Logical volume "lvm0" created

[root@satish ~]# lvdisplay
  --- Logical volume --
  LV Name                /dev/lvm-satish/lvm0
  VG Name                lvm-satish
  LV UUID                yMOTeD-1X3S-W5G7-arSn-s6tf-PKD1-y6Bv54
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                240.00 MB
  Current LE             60
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     512
  Block device           253:0

现在,格式化并将其安装在目录上。

其中我将其安装在theitroad目录中。

[root@satish ~]# mkfs.ext3  /dev/lvm-satish/lvm0
[root@satish ~]# mount /dev/lvm-satish/lvm0 theitroad/
[root@satish ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              24G   12G   11G  54% /
tmpfs                 502M     0  502M   0% /dev/shm
/dev/mapper/lvm--satish-lvm0
                      233M  6.1M  215M   3% /root/theitroad

现在添加一个文件。

[root@satish ~]# dd if=/dev/zero of=theitroad/ironman3.avi bs=10240 count=10240
10240+0 records in
10240+0 records out
104857600 bytes (105 MB) copied, 0.714737 seconds, 147 MB/s

[root@satish ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/lvm--satish-lvm0
                      233M  107M  114M  49% /root/theitroad

现在,创建一个新的200mb环回设备,并使用此环设备,扩展raid数组。

[root@satish ~]# mdadm --grow /dev/md5 -n4 --backup-file=raid5backup
mdadm: Need to backup 384K of critical section..
mdadm: ... critical section passed.

[root@satish ~]# dd if=/dev/zero of=raid-3 bs=1M count=200
[root@satish ~]# losetup /dev/loop3 raid-3
[root@satish ~]# mdadm --add /dev/md5 /dev/loop3
mdadm: added /dev/loop3

[root@satish ~]# mdadm --detail /dev/md5
/dev/md5:
        Version : 0.90
  Creation Time : Wed May 31 16:21:01 2013
     Raid Level : raid5
     Array Size : 614208 (599.91 MiB 628.95 MB)
  Used Dev Size : 204736 (199.97 MiB 209.65 MB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 5
    Persistence : Superblock is persistent
    Update Time : Wed May 31 17:14:20 2013
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
         Layout : left-symmetric
     Chunk Size : 64K
 Rebuild Status : 14% complete
           UUID : 592f15a1:dba02592:c3b644ca:412e7cf4
         Events : 0.168
    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       4       7        3        3      spare rebuilding   /dev/loop3

调整RAID和LVM的大小,然后检查其大小。

[root@satish ~]# pvresize /dev/md5
  Physical volume "/dev/md5" changed
  1 physical volume(s) resized/0 physical volume(s) not resized

[root@satish ~]# vgdisplay lvm-satish
  --- Volume group --
  VG Name               lvm-satish
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               596.00 MB
  PE Size               4.00 MB
  Total PE              149
  Alloc PE/Size       60/240.00 MB
  Free  PE/Size       89/356.00 MB
  VG UUID               N0d0YK-9sGO-v8jY-9kSL-rFfx-lLCA-VnCqYP

[root@satish ~]# lvresize -l 50 /dev/lvm-satish/lvm0
  WARNING: Reducing active and open logical volume to 200.00 MB
  THIS Jan DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvm0? [y/n]: y
  Reducing logical volume lvm0 to 200.00 MB
  Logical volume lvm0 successfully resized

[root@satish ~]# lvdisplay
  --- Logical volume --
  LV Name                /dev/lvm-satish/lvm0
  VG Name                lvm-satish
  LV UUID                yMOTeD-1X3S-W5G7-arSn-s6tf-PKD1-y6Bv54
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                200.00 MB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     512
  Block device           253:0

现在学习如何删除所有这些东西

要删除我们在本练习中所做的所有操作,请按照相反的过程进行。

首先,我们需要在停止阵列之前先卸载所有文件系统。

如果要从阵列中删除设备,首先需要对它们进行故障处理。
我们可以手动对任何运行状况良好的设备进行故障处理。

[root@satish ~]#umount theitroad
[root@satish ~]#lvremove -f /dev/lvm-satish/lvm0
[root@satish ~]#vgremove lvm-satish

停止和删除RAID阵列。

[root@satish ~]#mdadm --stop /dev/md5
[root@satish ~]#mdadm --remove /dev/md5

现在,删除所有循环设备。

[root@satish ~]#losetup -d /dev/loop0
[root@satish ~]#losetup -d /dev/loop1
[root@satish ~]#losetup -d /dev/loop2
[root@satish ~]#losetup -d /dev/loop3

现在,删除所有用作循环设备的文件。

[root@satish ~]#rm -rf raid-3 raid-2 raid-1 raid-0

最后,删除已安装RAID的目录。

[root@satish ~]rmdir theitroad