当前位置: 代码迷 >> 综合 >> Linux RAID 和 LVM 配置小实验[2]
  详细解决方案

Linux RAID 和 LVM 配置小实验[2]

热度:30   发布时间:2023-12-14 21:41:55.0
??

在前面的环境基础上进行进一步测试:

扩展LVM

从网上下载一个测试文件,放到LVM2分区中:

[root@DanCentOS67 LV2]# wget http://daneaststorage.blob.core.chinacloudapi.cn/demo/Azure.pdf

--2017-03-09 15:13:21--  http://daneaststorage.blob.core.chinacloudapi.cn/demo/Azure.pdf

Resolving daneaststorage.blob.core.chinacloudapi.cn... 42.159.208.78

Connecting to daneaststorage.blob.core.chinacloudapi.cn|42.159.208.78|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 7670041 (7.3M) [application/pdf]

Saving to: “Azure.pdf”

 

100%[=============================================================================================================================>] 7,670,041   --.-K/s   in 0.06s  

 

2017-03-09 15:13:21 (123 MB/s) - “Azure.pdf” saved [7670041/7670041]

 

[root@DanCentOS67 LV2]# ll

total 7508

-rw-r--r--. 1 root root 7670041 Jul  6  2016 Azure.pdf

drwx------. 2 root root   16384 Mar  9 15:02 lost+found

 

将之前创建好的 Physical Volume /dev/md125 扩展到VolGroup1中:

[root@DanCentOS67 LV2]# vgextend VolGroup1 /dev/md125

  Volume group "VolGroup1" successfully extended

 

查看 Volume Group的状态,可以看到已经加入的新的空间:

[root@DanCentOS67 LV2]# vgdisplay

  --- Volume group ---

  VG Name               VolGroup1

  System ID            

  Format                lvm2

  Metadata Areas        3

  Metadata Sequence No  4

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                2

  Open LV               2

  Max PV                0

  Cur PV                3

  Act PV                3

  VG Size               24.94 GiB

  PE Size               4.00 MiB

  Total PE              6385

  Alloc PE / Size       5108 / 19.95 GiB

  Free  PE / Size       1277 / 4.99 GiB

  VG UUID               dsTlXU-D3Y5-Fqb3-wCOl-LHmj-7Qyf-hXU186

 

扩展 Logic Volume 的大小:

[root@DanCentOS67 LV2]# lvextend /dev/mapper/VolGroup1-LogicalVol2 /dev/md125

  Size of logical volume VolGroup1/LogicalVol2 changed from 10.19 GiB (2608 extents) to 15.18 GiB (3885 extents).

  Logical volume LogicalVol2 successfully resized

也可以将分区扩展到某个大小(下面这条命令将分区扩展到1024MiB):

lvextend -L1024 /dev/mapper/VolGroup1-LogicalVol2

或者在分区现在的大小上进一步扩展固定大小的空间(下面这条命令在现有大小的基础上继续增加100 MiB):

lvextend -L+100 /dev/mapper/VolGroup1-LogicalVol2

 

扩展完成后,可以看到 /mnt/LV2 的大小实际没有发生变化:

[root@DanCentOS67 LV2]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1              30G  2.0G   26G   7% /

tmpfs                 6.9G     0  6.9G   0% /dev/shm

/dev/sdb1             133G   60M  126G   1% /mnt/resource

/dev/mapper/VolGroup1-LogicalVol1

                      9.5G   22M  9.0G   1% /mnt/LV1

/dev/mapper/VolGroup1-LogicalVol2

                       10G   33M  9.4G   1% /mnt/LV2

 

进一步使用 resize2fs 工具将文件系统的大小进行扩展:

[root@DanCentOS67 LV2]# resize2fs /dev/mapper/VolGroup1-LogicalVol2

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/mapper/VolGroup1-LogicalVol2 is mounted on /mnt/LV2; on-line resizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/mapper/VolGroup1-LogicalVol2 to 3978240 (4k) blocks.

The filesystem on /dev/mapper/VolGroup1-LogicalVol2 is now 3978240 blocks long.

 

再次查看发现文件系统的大小已经变为新的大小(扩展成功):

[root@DanCentOS67 LV2]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1              30G  2.0G   26G   7% /

tmpfs                 6.9G     0  6.9G   0% /dev/shm

/dev/sdb1             133G   60M  126G   1% /mnt/resource

/dev/mapper/VolGroup1-LogicalVol1

                      9.5G   22M  9.0G   1% /mnt/LV1

/dev/mapper/VolGroup1-LogicalVol2

                       15G   33M   15G   1% /mnt/LV2

 

文件也没有损坏或丢失:

[root@DanCentOS67 LV2]# ll

total 7508

-rw-r--r--. 1 root root 7670041 Jul  6  2016 Azure.pdf

drwx------. 2 root root   16384 Mar  9 15:02 lost+found

 

LVM 迁移到其他机器上

将4块磁盘从原来的机器上分离下来,按照 cdef 的顺序依次挂载到另外一台机器上(另外一台机器原有一个分区 /dev/sdc,所以所有的分区号都向后串了一个)

fdisk -l 查看分区的情况:

[root@DanCentOS65 daniel]# fdisk -l

 

……

 

Disk /dev/sdd: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xbd293e5b

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdd1               1         653     5245191   fd  Linux raid autodetect

/dev/sdd2             654        1305     5237190   fd  Linux raid autodetect

 

Disk /dev/md127: 10.7 GB, 10716446720 bytes

2 heads, 4 sectors/track, 2616320 cylinders

Units = cylinders of 8 * 512 = 4096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Disk identifier: 0x00000000

 

 

Disk /dev/mapper/VolGroup1-LogicalVol1: 10.5 GB, 10485760000 bytes

255 heads, 63 sectors/track, 1274 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Disk identifier: 0x00000000

 

 

Disk /dev/sde: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x13c704fe

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sde1               1         653     5245191   fd  Linux raid autodetect

/dev/sde2             654        1305     5237190   fd  Linux raid autodetect

 

Disk /dev/md126: 10.7 GB, 10716446720 bytes

2 heads, 4 sectors/track, 2616320 cylinders

Units = cylinders of 8 * 512 = 4096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Disk identifier: 0x00000000

 

 

Disk /dev/sdf: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x3273d383

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdf1               1         653     5245191   fd  Linux raid autodetect

/dev/sdf2             654        1305     5237190   fd  Linux raid autodetect

 

Disk /dev/sdg: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x6283a8a2

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdg1               1         653     5245191   fd  Linux raid autodetect

/dev/sdg2             654        1305     5237190   fd  Linux raid autodetect

 

Disk /dev/md125: 5358 MB, 5358223360 bytes

2 heads, 4 sectors/track, 1308160 cylinders

Units = cylinders of 8 * 512 = 4096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 524288 bytes / 524288 bytes

Disk identifier: 0x00000000

 

可以看到没有识别出 Logical Volume 2,所以我们从RAID 开始再重新检查一下:

[root@DanCentOS65 daniel]# mdadm --misc --detail /dev/md127

/dev/md127:

        Version : 1.2

  Creation Time : Thu Mar  9 14:43:25 2017

     Raid Level : raid5

     Array Size : 10465280 (9.98 GiB 10.72 GB)

  Used Dev Size : 5232640 (4.99 GiB 5.36 GB)

   Raid Devices : 3

  Total Devices : 2

    Persistence : Superblock is persistent

 

    Update Time : Thu Mar  9 15:37:38 2017

          State : clean, degraded

 Active Devices : 2

Working Devices : 2

 Failed Devices : 0

  Spare Devices : 0

 

         Layout : left-symmetric

     Chunk Size : 512K

 

           Name : DanCentOS67:127

           UUID : 1a86a744:b01bd085:ee05717d:8ba86e4a

         Events : 18

 

    Number   Major   Minor   RaidDevice State

       0       8       49        0      active sync   /dev/sdd1

       2       0        0        2      removed

       3       8       50        2      active sync   /dev/sdd2

[root@DanCentOS65 daniel]# mdadm --misc --detail /dev/md126

/dev/md126:

        Version : 1.2

  Creation Time : Thu Mar  9 14:43:46 2017

     Raid Level : raid5

     Array Size : 10465280 (9.98 GiB 10.72 GB)

  Used Dev Size : 5232640 (4.99 GiB 5.36 GB)

   Raid Devices : 3

  Total Devices : 2

    Persistence : Superblock is persistent

 

    Update Time : Fri Mar 10 02:26:26 2017

          State : clean, degraded

 Active Devices : 2

Working Devices : 2

 Failed Devices : 0

  Spare Devices : 0

 

         Layout : left-symmetric

     Chunk Size : 512K

 

           Name : DanCentOS67:126

           UUID : 72b40d3f:78790af8:d369e502:8547a8b1

         Events : 21

 

    Number   Major   Minor   RaidDevice State

       0       0        0        0      removed

       1       8       82        1      active sync   /dev/sdf2

       3       8       81        2      active sync   /dev/sdf1

[root@DanCentOS65 daniel]# mdadm --misc --detail /dev/md125

/dev/md125:

        Version : 1.2

  Creation Time : Thu Mar  9 14:43:55 2017

     Raid Level : raid5

     Array Size : 5232640 (4.99 GiB 5.36 GB)

  Used Dev Size : 5232640 (4.99 GiB 5.36 GB)

   Raid Devices : 2

  Total Devices : 2

    Persistence : Superblock is persistent

 

    Update Time : Thu Mar  9 15:37:38 2017

          State : clean

 Active Devices : 2

Working Devices : 2

 Failed Devices : 0

  Spare Devices : 0

 

         Layout : left-symmetric

     Chunk Size : 512K

 

           Name : DanCentOS67:125

           UUID : e74d96ff:12e1173d:f2d398ce:744d5f47

         Events : 18

 

    Number   Major   Minor   RaidDevice State

       0       8       97        0      active sync   /dev/sdg1

       2       8       98        1      active sync   /dev/sdg2

可以看到 /dev/md127 和 /dev/md126 没有识别到/dev/sde1 和 /dev/sde2 两个分区。

 

查看这两个分区的状态:

[root@DanCentOS65 daniel]# mdadm --examine /dev/sde1

/dev/sde1:

          Magic : a92b4efc

        Version : 1.2

    Feature Map : 0x0

     Array UUID : 1a86a744:b01bd085:ee05717d:8ba86e4a

           Name : DanCentOS67:127

  Creation Time : Thu Mar  9 14:43:25 2017

     Raid Level : raid5

   Raid Devices : 3

 

 Avail Dev Size : 10482190 (5.00 GiB 5.37 GB)

     Array Size : 10465280 (9.98 GiB 10.72 GB)

  Used Dev Size : 10465280 (4.99 GiB 5.36 GB)

    Data Offset : 8192 sectors

   Super Offset : 8 sectors

   Unused Space : before=8104 sectors, after=16910 sectors

          State : clean

    Device UUID : 3275b1fe:c1c7935c:e3d4928e:1740fc0c

 

    Update Time : Fri Mar 10 02:22:57 2017

  Bad Block Log : 512 entries available at offset 72 sectors

       Checksum : b236682c - correct

         Events : 23

 

         Layout : left-symmetric

     Chunk Size : 512K

 

   Device Role : Active device 1

   Array State : .A. ('A' == active, '.' == missing, 'R' == replacing)

[root@DanCentOS65 daniel]# mdadm --examine /dev/sde2

/dev/sde2:

          Magic : a92b4efc

        Version : 1.2

    Feature Map : 0x0

     Array UUID : 72b40d3f:78790af8:d369e502:8547a8b1

           Name : DanCentOS67:126

  Creation Time : Thu Mar  9 14:43:46 2017

     Raid Level : raid5

   Raid Devices : 3

 

 Avail Dev Size : 10466188 (4.99 GiB 5.36 GB)

     Array Size : 10465280 (9.98 GiB 10.72 GB)

  Used Dev Size : 10465280 (4.99 GiB 5.36 GB)

    Data Offset : 8192 sectors

   Super Offset : 8 sectors

   Unused Space : before=8104 sectors, after=908 sectors

          State : clean

    Device UUID : 46862c7b:4db1cdb0:17a40a6c:91254c2e

 

    Update Time : Thu Mar  9 15:52:42 2017

  Bad Block Log : 512 entries available at offset 72 sectors

       Checksum : db02d450 - correct

         Events : 18

 

         Layout : left-symmetric

     Chunk Size : 512K

 

   Device Role : Active device 0

   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)

可以看到,状态是好的,分区并未出现异常。

 

重新将两个分区加回 RAID 5 阵列中:

[root@DanCentOS65 daniel]# mdadm --manage /dev/md127 --add /dev/sde1

mdadm: re-added /dev/sde1

[root@DanCentOS65 daniel]# mdadm --manage /dev/md126 --add /dev/sde2

mdadm: added /dev/sde2

 

经过一段时间的Rebuild后,查看重新检查可以看到两个 RAID 5 阵列已经恢复:

[root@DanCentOS65 daniel]# mdadm --misc --detail /dev/md127

/dev/md127:

        Version : 1.2

  Creation Time : Thu Mar  9 14:43:25 2017

     Raid Level : raid5

     Array Size : 10465280 (9.98 GiB 10.72 GB)

  Used Dev Size : 5232640 (4.99 GiB 5.36 GB)

   Raid Devices : 3

  Total Devices : 3

    Persistence : Superblock is persistent

 

    Update Time : Fri Mar 10 05:51:01 2017

          State : clean

 Active Devices : 3

Working Devices : 3

 Failed Devices : 0

  Spare Devices : 0

 

         Layout : left-symmetric

     Chunk Size : 512K

 

           Name : DanCentOS67:127

           UUID : 1a86a744:b01bd085:ee05717d:8ba86e4a

         Events : 38

 

    Number   Major   Minor   RaidDevice State

       0       8       49        0      active sync   /dev/sdd1

       1       8       65        1      active sync   /dev/sde1

       3       8       50        2      active sync   /dev/sdd2

[root@DanCentOS65 daniel]# mdadm --misc --detail /dev/md126

/dev/md126:

        Version : 1.2

  Creation Time : Thu Mar  9 14:43:46 2017

     Raid Level : raid5

     Array Size : 10465280 (9.98 GiB 10.72 GB)

  Used Dev Size : 5232640 (4.99 GiB 5.36 GB)

   Raid Devices : 3

  Total Devices : 3

    Persistence : Superblock is persistent

 

    Update Time : Fri Mar 10 05:58:03 2017

          State : clean

 Active Devices : 3

Working Devices : 3

 Failed Devices : 0

  Spare Devices : 0

 

         Layout : left-symmetric

     Chunk Size : 512K

 

           Name : DanCentOS67:126

           UUID : 72b40d3f:78790af8:d369e502:8547a8b1

         Events : 41

 

    Number   Major   Minor   RaidDevice State

       4       8       66        0      active sync   /dev/sde2

       1       8       82        1      active sync   /dev/sdf2

       3       8       81        2      active sync   /dev/sdf1

 

重新扫描 Physical Volume

[root@DanCentOS65 daniel]# pvscan

  PV /dev/md127   VG VolGroup1       lvm2 [9.98 GiB / 0    free]

  PV /dev/md126   VG VolGroup1       lvm2 [9.98 GiB / 0    free]

  PV /dev/md125   VG VolGroup1       lvm2 [4.99 GiB / 0    free]

  Total: 3 [24.94 GiB] / in use: 3 [24.94 GiB] / in no VG: 0 [0   ]

 

扫描 Logical Volume:

[root@DanCentOS65 daniel]# lvscan

  ACTIVE            '/dev/VolGroup1/LogicalVol1' [9.77 GiB] inherit

  inactive          '/dev/VolGroup1/LogicalVol2' [15.18 GiB] inherit

 

看到 Logical Volume 2 inactive了,重新激活这个 Logical Volume:

[root@DanCentOS65 daniel]# lvchange -a y /dev/VolGroup1/LogicalVol2

 

激活后再次查看状态:

[root@DanCentOS65 daniel]# lvscan

  ACTIVE            '/dev/VolGroup1/LogicalVol1' [9.77 GiB] inherit

  ACTIVE            '/dev/VolGroup1/LogicalVol2' [15.18 GiB] inherit

 

fdisk -l 查看发现可以识别出 Logical Volume 2了:

[root@DanCentOS65 daniel]# fdisk -l

 

……

 

Disk /dev/mapper/VolGroup1-LogicalVol1: 10.5 GB, 10485760000 bytes

255 heads, 63 sectors/track, 1274 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Disk identifier: 0x00000000

 

Disk /dev/mapper/VolGroup1-LogicalVol2: 16.3 GB, 16294871040 bytes

255 heads, 63 sectors/track, 1981 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Disk identifier: 0x00000000

 

将两个分区挂在到目录下:

[root@DanCentOS65 daniel]# mkdir /mnt/LV1

[root@DanCentOS65 daniel]# mkdir /mnt/LV2

[root@DanCentOS65 daniel]# mount /dev/mapper/VolGroup1-LogicalVol1 /mnt/LV1

[root@DanCentOS65 daniel]# mount /dev/mapper/VolGroup1-LogicalVol2 /mnt/LV2

 

进入目录中查看文件未丢失或损坏,将文档下载到本地后可以正常打开

[root@DanCentOS65 daniel]# cd /mnt/LV2

[root@DanCentOS65 LV2]# ll

total 7508

-rw-r--r--. 1 root root 7670041 Jul  6  2016 Azure.pdf

drwx------  2 root root   16384 Mar  9 15:02 lost+found

至此,迁移工作结束。

 

删除 LVM 环境:

最后来做一点破坏性工作,将整个环境拆解掉。

首先将两个分区卸载:

[root@DanCentOS65 daniel]# umount /dev/mapper/VolGroup1-LogicalVol1

[root@DanCentOS65 daniel]# umount /dev/mapper/VolGroup1-LogicalVol2

 

接着可以删除 Logical Volume

[root@DanCentOS65 daniel]# lvremove -f /dev/mapper/VolGroup1-LogicalVol1

  Logical volume "LogicalVol1" successfully removed

[root@DanCentOS65 daniel]# lvremove -f /dev/mapper/VolGroup1-LogicalVol2

  Logical volume "LogicalVol2" successfully removed

 

删除  Volume Group

[root@DanCentOS65 daniel]# vgremove VolGroup1

  Volume group "VolGroup1" successfully removed

 

删除 Physical Volume

[root@DanCentOS65 daniel]# pvremove /dev/md125 /dev/md126 /dev/md127

  Labels on physical volume "/dev/md125" successfully wiped

  Labels on physical volume "/dev/md126" successfully wiped

  Labels on physical volume "/dev/md127" successfully wiped

 

停止 RAID 5 阵列:

[root@DanCentOS65 daniel]# mdadm --stop /dev/md125

mdadm: stopped /dev/md125

[root@DanCentOS65 daniel]# mdadm --stop /dev/md126

mdadm: stopped /dev/md126

[root@DanCentOS65 daniel]# mdadm --stop /dev/md127

mdadm: stopped /dev/md127

 

停止后发现已经没有 RAID 5 Device 了:

[root@DanCentOS65 daniel]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

unused devices: <none>

注:正常应该还执行下面两个命令完全删除,不过这里已经检测不到 md Device 了,所以就不需要了。

mdadm --remove /dev/md125

mdadm --zero-superblock /dev/sdg1 /dev/sdg2