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

    xiaoxiao2021-03-25  114

    

    最终结构:

     

    操作步骤:

    注:步骤中所有命令均改为粗体黄色,注意的地方用绿色标出

     

    磁盘分区:

    首先,在机器上挂载 4 10GB 的磁盘(这里用 Azure 虚拟机来模拟环境,系统使用 CentOS 6.7):

    [root@DanCentOS67 daniel]# fdisk -l

     

    ……

     

    Disk /dev/sdc: 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: 0x00000000

     

    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: 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: 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: 0x00000000

     

    接着分别将每个磁盘分为2个分区,以 /dev/sdc 为例:

    使用 fdisk 工具划出第一个分区 /dev/sdc1,大小约为 5GBdev/sdc2 同理,Partition number 要改为 2,扇区的起止编号也不同,sdc2扇区编号是 654-1305):

    [root@DanCentOS67 daniel]# fdisk /dev/sdc

     

    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

             switch off the mode (command 'c') and change display units to

             sectors (command 'u').

     

    Command (m for help): n

    Command action

       e   extended

       p   primary partition (1-4)

    p

    Partition number (1-4): 1

    First cylinder (1-1305, default 1): 1

    Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 653

     

    Command (m for help): t

    Selected partition 1

    Hex code (type L to list codes): fd

    Changed system type of partition 1 to fd (Linux raid autodetect)

     

    Command (m for help): w

    The partition table has been altered!

     

    Calling ioctl() to re-read partition table.

     

    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

    The kernel still uses the old table. The new table will be used at

    the next reboot or after you run partprobe(8) or kpartx(8)

    Syncing disks.

     

    使用 fdisk-l 查看分区结果:

    [root@DanCentOS67 daniel]# fdisk -l

     

    ……

     

    Disk /dev/sdc: 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/sdc1               1         653     5245191   fd  Linux raid autodetect

    /dev/sdc2             654        1305     5237190   fd  Linux raid autodetect

     

    对剩下的3个磁盘(/dev/sdd/dev/sde/dev/sdf)进行同样的处理,处理后使用 fdisk -l 查看是否全部完成分区格式化:

    [root@DanCentOS67 daniel]# fdisk -l

     

    ……

     

    Disk /dev/sdc: 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/sdc1               1         653     5245191   fd  Linux raid autodetect

    /dev/sdc2             654        1305     5237190   fd  Linux raid autodetect

     

    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: 0x13c704fe

     

       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/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: 0x3273d383

     

       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/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: 0x6283a8a2

     

       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

    到这里,就完成了倒数第二层结构。

     

    RAID 5的配置:

    这里采用 RAID5,在提高IO性能的同时保证数据安全。

    首先加载raid5内核模块:

    [root@DanCentOS67 daniel]# modprobe raid5

     

    接着将 /dev/sdc1/dev/sdc2/dev/sdd1 合并为 /dev/md127

    [root@DanCentOS67 daniel]# mdadm --create /dev/md127 --level=5 --raid-devices=3 /dev/sd[cd]1 /dev/sdc2

    mdadm: /dev/sdc1 appears to contain an ext2fs file system

           size=5245188K  mtime=Thu Jan  1 00:00:00 1970

    mdadm: /dev/sdd1 appears to contain an ext2fs file system

           size=5245188K  mtime=Thu Jan  1 00:00:00 1970

    mdadm: /dev/sdc2 appears to contain an ext2fs file system

           size=5237188K  mtime=Thu Jan  1 00:00:00 1970

    Continue creating array? y

    mdadm: Defaulting to version 1.2 metadata

    mdadm: array /dev/md127 started.

     

    查看 /dev/md127 的状态:

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

    /dev/md127:

            Version : 1.2

      Creation Time : Thu Mar  9 12:37:43 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 : Thu Mar  9 12:41:44 2017

              State : clean

     Active Devices : 3

    Working Devices : 3

     Failed Devices : 0

      Spare Devices : 0

     

             Layout : left-symmetric

         Chunk Size : 512K

     

               Name : DanCentOS67:127  (local to host DanCentOS67)

               UUID : 1a86a744:b01bd085:ee05717d:8ba86e4a

             Events : 18

     

        Number   Major   Minor   RaidDevice State

           0       8       33        0      active sync   /dev/sdc1

           1       8       49        1      active sync   /dev/sdd1

           3       8       34        2      active sync   /dev/sdc2

    可以看到实际可用大小变为10GB左右,即 5GB*(3-1) = 10GB,具体原理可以参考RAID5的实现原理。

     

    同理,将 /dev/sdd2/dev/sde1/dev/sde2 合并为  /dev/md126

    [root@DanCentOS67 daniel]# mdadm --create /dev/md126 --level=5 --raid-devices=3 /dev/sd[de]2 /dev/sde1

     

    /dev/sdf1 /dev/sdf2 合并为 /dev/md125

    [root@DanCentOS67 daniel]# mdadm --create /dev/md125 --level=5 --raid-device=2 /dev/sdf1 /dev/sdf2

    到这里RAID 5已经全部做完。

     

    LVM配置:

    首先,将 /dev/md127/dev/md126/dev/md125 创建为 PhysicalVolume(PV)

    [root@DanCentOS67 daniel]# pvcreate /dev/md127 /dev/md126 /dev/md125

      Physical volume "/dev/md127" successfully created

      Physical volume "/dev/md126" successfully created

      Physical volume "/dev/md125" successfully created

     

    扫描 Physical Volume 的改动:

    [root@DanCentOS67 daniel]# pvscan

      PV /dev/md125         lvm2 [4.99 GiB]

      PV /dev/md126         lvm2 [9.98 GiB]

      PV /dev/md127         lvm2 [9.98 GiB]

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

     

    查看每个 Volume 的详细信息:

    [root@DanCentOS67 daniel]# pvdisplay

      "/dev/md125" is a new physical volume of "4.99 GiB"

      --- NEW Physical volume ---

      PV Name               /dev/md125

      VG Name              

      PV Size               4.99 GiB

      Allocatable           NO

      PE Size               0  

      Total PE              0

      Free PE               0

      Allocated PE          0

      PV UUID               JWf4ZE-FOCZ-mQfh-3cIA-sbcg-19S6-x28jMy

      

      "/dev/md126" is a new physical volume of "9.98 GiB"

      --- NEW Physical volume ---

      PV Name               /dev/md126

      VG Name              

      PV Size               9.98 GiB

      Allocatable           NO

      PE Size               0  

      Total PE              0

      Free PE               0

      Allocated PE          0

      PV UUID               DVxViy-miUM-6q7r-520o-SP2T-xBbX-xHj793

      

      "/dev/md127" is a new physical volume of "9.98 GiB"

      --- NEW Physical volume ---

      PV Name               /dev/md127

      VG Name              

      PV Size               9.98 GiB

      Allocatable           NO

      PE Size               0  

      Total PE              0

      Free PE               0

      Allocated PE          0

      PV UUID               URW7wO-pQLV-uXkP-oXEg-jOKc-fber-oenEj7

     

    这里我们首先将 /dev/md127 /dev/md126 添加到 Volume Group 中:

    [root@DanCentOS67 daniel]# vgcreate VolGroup1 /dev/md127 /dev/md126

      Volume group "VolGroup1" successfully created

     

    查看 Volume Group的使用情况:

    [root@DanCentOS67 daniel]# vgdisplay

      --- Volume group ---

      VG Name               VolGroup1

      System ID            

      Format                lvm2

      Metadata Areas        2

      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                2

      Act PV                2

      VG Size               19.95 GiB

      PE Size               4.00 MiB

      Total PE              5108

      Alloc PE / Size       0 / 0  

      Free  PE / Size       5108 / 19.95 GiB

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

     

    Volume Group 创建好后,我们在其上划分新的 Logical Volume

    [root@DanCentOS67 daniel]# lvcreate -l 2500 -n LogicalVol1 VolGroup1

      Logical volume "LogicalVol1" created.

    [root@DanCentOS67 daniel]# lvcreate -l 2608 -n LogicalVol2 VolGroup1

      Logical volume "LogicalVol2" created.

    前面我们 Volume Group中一共有 5108 PE,每个 PEPhysical Extent)的默认大小是 4.00 MiB,一共 19.95 GiB。我们为 LogicalVol1划分了 2500 PE,即 10000 MiB(9.77 GiB),为 LogicalVol2 划分了 2608 PE,即 10432MiB(10.19 Gib)

     

    查看 LogicalVolume 的划分情况:

    [root@DanCentOS67 daniel]# lvdisplay

      --- Logical volume ---

      LV Path                /dev/VolGroup1/LogicalVol1

      LV Name                LogicalVol1

      VG Name                VolGroup1

      LV UUID                8w2ZhQ-hTSr-Sg0z-OJRv-h9aq-coZw-zeYCtI

      LV Write Access        read/write

      LV Creation host, time DanCentOS67, 2017-03-09 13:37:56 +0000

      LV Status              available

      # open                 0

      LV Size                9.77 GiB

      Current LE             2500

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     4096

      Block device           253:0

      

      --- Logical volume ---

      LV Path                /dev/VolGroup1/LogicalVol2

      LV Name                LogicalVol2

      VG Name                VolGroup1

      LV UUID                JdQsXc-OMwk-A6ZB-e3vJ-rLPv-hNek-3yNVVg

      LV Write Access        read/write

      LV Creation host, time DanCentOS67, 2017-03-09 13:38:08 +0000

      LV Status              available

      # open                 0

      LV Size                10.19 GiB

      Current LE             2608

      Segments               2

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     4096

      Block device           253:1

     

    fdisk -l 查看设备:

    [root@DanCentOS67 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: 10.9 GB, 10938744832 bytes

    255 heads, 63 sectors/track, 1329 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

     

    使用 mkfs.ext4 工具将两个 LogicalVolume 的文件系统格式化为 ext4

    [root@DanCentOS67 daniel]# mkfs.ext4 /dev/mapper/VolGroup1-LogicalVol1

    mke2fs 1.41.12 (17-May-2010)

    Filesystem label=

    OS type: Linux

    Block size=4096 (log=2)

    Fragment size=4096 (log=2)

    Stride=128 blocks, Stripe width=256 blocks

    640848 inodes, 2560000 blocks

    128000 blocks (5.00%) reserved for the super user

    First data block=0

    Maximum filesystem blocks=2621440000

    79 block groups

    32768 blocks per group, 32768 fragments per group

    8112 inodes per group

    Superblock backups stored on blocks:

    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

     

    Writing inode tables: done                           

    Creating journal (32768 blocks): done

    Writing superblocks and filesystem accounting information: done

     

    This filesystem will be automatically checked every 39 mounts or

    180 days, whichever comes first.  Use tune2fs -c or -i to override.

    [root@DanCentOS67 daniel]# mkfs.ext4 /dev/mapper/VolGroup1-LogicalVol2

    ……

     

    格式化后,将格式化得到的文件分区mount到目录中(如果要开机自动挂载可以修改 /etc/fstab):

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

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

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

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

    到这里,LVM部分已经配置完成。

    转载请注明原文地址: https://ju.6miu.com/read-21420.html

    最新回复(0)