首页 > 代码库 > LVM+RAID5

LVM+RAID5

桌面

wKioL1Psy_iw0e3AAADiWtiQb-Y061.jpg

环境

[root@localhost ~]# uname -a

Linux localhost.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 


x86_64 x86_64 GNU/Linux

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.0.1406 (Core)

[root@localhost ~]#




先格式化硬盘

[root@localhost ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x9b6fbd48.


Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-10485759, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):

Using default value 10485759

Partition 1 of type Linux and of size 5 GiB is set


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.

[root@localhost ~]# fdisk /dev/sdc

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x922dcb2f.


Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-10485759, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):

Using default value 10485759

Partition 1 of type Linux and of size 5 GiB is set


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.

[root@localhost ~]# fdisk /dev/sdd

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x2ba5a48b.


Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-10485759, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):

Using default value 10485759

Partition 1 of type Linux and of size 5 GiB is set


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.

[root@localhost ~]#


操作完成后创建raid5

[root@localhost ~]# mdadm --create /dev/md0 --level=5 --raid-device=3 /dev/sd[bcd]1

mdadm: Defaulting to version 1.2 metadata 

mdadm: array /dev/md0 started.

然后cat /proc/mdstat查看数据同步状态

[root@localhost ~]# cat /proc/mdstat 

Personalities : [raid6] [raid5] [raid4] 

md0 : active raid5 sdd1[3] sdc1[1] sdb1[0] 

      10471424 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] 

      [======>..............]  recovery = 33.5% (1754752/5235712) finish=1.4min speed=38698K/sec 




可以用mdadm --detail /dev/md0来查看刚才新建的设备状态


[root@localhost ~]# mdadm --detail /dev/md0

/dev/md0:

        Version : 1.2

  Creation Time : Thu Aug 14 21:32:42 2014

     Raid Level : raid5

     Array Size : 10474496 (9.99 GiB 10.73 GB)

  Used Dev Size : 5237248 (4.99 GiB 5.36 GB)

   Raid Devices : 3

  Total Devices : 3

    Persistence : Superblock is persistent


    Update Time : Thu Aug 14 21:33:22 2014

          State : clean

 Active Devices : 3

Working Devices : 3

 Failed Devices : 0

  Spare Devices : 0


         Layout : left-symmetric

     Chunk Size : 512K


           Name : localhost.localdomain:0  (local to host localhost.localdomain)

           UUID : f609ab00:506281f1:74f679f1:330b997e

         Events : 18


    Number   Major   Minor   RaidDevice State

       0       8       17        0      active sync   /dev/sdb1

       1       8       33        1      active sync   /dev/sdc1

       3       8       49        2      active sync   /dev/sdd1

[root@localhost ~]#

然后配置raid的配置文件

[root@localhost ~]# echo device /dev/sdb1 /dev/sdc1 /dev/sdd1 > /etc/mdadm.conf

[root@localhost ~]# mdadm --detail --scan >> /etc/mdadm.conf




然后我们来做LVM实验

[root@localhost ~]# pvcreate /dev/md0

  Physical volume "/dev/md0" successfully created

[root@localhost ~]# vgcreate vg /dev/md0

  Volume group "vg" successfully created

[root@localhost ~]# pvscan

  PV /dev/md0    VG vg       lvm2 [9.99 GiB / 9.99 GiB free]

  PV /dev/sda2   VG centos   lvm2 [39.51 GiB / 0    free]

  Total: 2 [49.50 GiB] / in use: 2 [49.50 GiB] / in no VG: 0 [0   ]

[root@localhost ~]# vgscan

  Reading all physical volumes.  This may take a while...

  Found volume group "vg" using metadata type lvm2

  Found volume group "centos" using metadata type lvm2

[root@localhost ~]# pvdisplay

  --- Physical volume ---

  PV Name               /dev/md0

  VG Name               vg

  PV Size               9.99 GiB / not usable 0

  Allocatable           yes

  PE Size               4.00 MiB

  Total PE              2557

  Free PE               2557

  Allocated PE          0

  PV UUID               09m55X-PS71-FRHm-W8Y0-T7Po-87vA-7jfMzz


  --- Physical volume ---

  PV Name               /dev/sda2

  VG Name               centos

  PV Size               39.51 GiB / not usable 3.00 MiB

  Allocatable           yes (but full)

  PE Size               4.00 MiB

  Total PE              10114

  Free PE               0

  Allocated PE          10114

  PV UUID               10uSSs-Vbxx-SZAw-l4HS-pSdA-zfzV-wm5BMf


[root@localhost ~]#


[root@localhost ~]# vgdisplay

  --- Volume group ---

  VG Name               vg

  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               9.99 GiB

  PE Size               4.00 MiB

  Total PE              2557

  Alloc PE / Size       0 / 0

  Free  PE / Size       2557 / 9.99 GiB

  VG UUID               bPFe6k-4SHi-CocW-EBDR-Ccqk-bRWc-JVdsCD


  --- Volume group ---

  VG Name               centos

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  3

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                2

  Open LV               2

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               39.51 GiB

  PE Size               4.00 MiB

  Total PE              10114

  Alloc PE / Size       10114 / 39.51 GiB

  Free  PE / Size       0 / 0

  VG UUID               NpPwU7-zaAR-hMdL-jFZm-PXVf-Q7OM-0Zk6iQ


[root@localhost ~]#


创建LVM


[root@localhost ~]# lvcreate -L 1g -n lvm vg

  Logical volume "lvm" created

[root@localhost ~]# lvcreate -L 500m -n lvm1 vg

  Logical volume "lvm1" created

[root@localhost ~]# lvscan

  ACTIVE            ‘/dev/vg/lvm‘ [1.00 GiB] inherit

  ACTIVE            ‘/dev/vg/lvm1‘ [500.00 MiB] inherit

  ACTIVE            ‘/dev/centos/swap‘ [1.03 GiB] inherit

  ACTIVE            ‘/dev/centos/root‘ [38.48 GiB] inherit

[root@localhost ~]# lvdisplay

  --- Logical volume ---

  LV Path                /dev/vg/lvm

  LV Name                lvm

  VG Name                vg

  LV UUID                Uu3AVp-L3L8-l670-kVuQ-F4nU-Hs4w-J0Sxto

  LV Write Access        read/write

  LV Creation host, time localhost.localdomain, 2014-08-14 21:48:24 +0800

  LV Status              available

  # open                 0

  LV Size                1.00 GiB

  Current LE             256

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     4096

  Block device           253:2


  --- Logical volume ---

  LV Path                /dev/vg/lvm1

  LV Name                lvm1

  VG Name                vg

  LV UUID                eBscVc-LveI-VtE8-QWCd-tI0F-q231-IvCpwG

  LV Write Access        read/write

  LV Creation host, time localhost.localdomain, 2014-08-14 21:48:54 +0800

  LV Status              available

  # open                 0

  LV Size                500.00 MiB

  Current LE             125

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     4096

  Block device           253:3


  --- Logical volume ---

  LV Path                /dev/centos/swap

  LV Name                swap

  VG Name                centos

  LV UUID                AmdypQ-FIaA-85Ni-VATw-KDIz-Rt2I-C5DrXt

  LV Write Access        read/write

  LV Creation host, time localhost, 2014-08-12 17:24:27 +0800

  LV Status              available

  # open                 2

  LV Size                1.03 GiB

  Current LE             264

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0


  --- Logical volume ---

  LV Path                /dev/centos/root

  LV Name                root

  VG Name                centos

  LV UUID                rYxDWG-EmTn-61IU-HD52-Lnqv-n6yk-OvNlR3

  LV Write Access        read/write

  LV Creation host, time localhost, 2014-08-12 17:24:28 +0800

  LV Status              available

  # open                 1

  LV Size                38.48 GiB

  Current LE             9850

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:1


[root@localhost ~]#

[root@localhost ~]# mkfs.ext4 /dev/vg

mke2fs 1.42.9 (28-Dec-2013)

/dev/vg is not a block special device.

Proceed anyway? (y,n) y

mkfs.ext4: Device size reported to be zero.  Invalid partition specified, or

        partition table wasn‘t reread after running fdisk, due to

        a modified partition being busy and in use.  You may need to reboot

        to re-read your partition table.


[root@localhost ~]# mkfs.ext4 /dev/vg/lvm*

mke2fs 1.42.9 (28-Dec-2013)

mkfs.ext4: invalid blocks ‘/dev/vg/lvm1‘ on device ‘/dev/vg/lvm‘

[root@localhost ~]# mkfs.ext4 /dev/vg/lvm

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=128 blocks, Stripe width=256 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376


Allocating group tables: done

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done


[root@localhost ~]# mkfs.ext4 /dev/vg/lvm1

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=512 blocks, Stripe width=1024 blocks

128016 inodes, 512000 blocks

25600 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=34078720

63 block groups

8192 blocks per group, 8192 fragments per group

2032 inodes per group

Superblock backups stored on blocks:

        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409


Allocating group tables: done

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done


[root@localhost ~]#

[root@localhost ~]# ^C


创建目录,然后vi /etc/fstab 将挂载点写入fstab,实现开机自动挂载

[root@localhost ~]# mkdir /mnt/test1

[root@localhost ~]# mkdir /mnt/test2

[root@localhost ~]# mount /dev/vg/lvm /mnt/test1

[root@localhost ~]# mount /dev/vg/lvm1 /mnt/test2

[root@localhost ~]#

[root@localhost ~]# vi /etc/fstab

/dev/vg/lvm1/ /mnt/test1 ext3 defaults 0 0 

/dev/vg/lvm2/ /mnt/test2 ext3 defaults 0 0

把RAID5 中的sdb1干掉


[root@localhost ~]# reboot

login as: root

root@192.168.188.100‘s password:

Last login: Thu Aug 14 21:25:32 2014 from 192.168.188.1

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdb1[1] sdc1[3]

      10474496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]


unused devices: <none>

[root@localhost ~]#

[root@localhost ~]# pvdisplay

  --- Physical volume ---

  PV Name               /dev/md0

  VG Name               vg

  PV Size               9.99 GiB / not usable 0

  Allocatable           yes

  PE Size               4.00 MiB

  Total PE              2557

  Free PE               2176

  Allocated PE          381

  PV UUID               09m55X-PS71-FRHm-W8Y0-T7Po-87vA-7jfMzz


  --- Physical volume ---

  PV Name               /dev/sda2

  VG Name               centos

  PV Size               39.51 GiB / not usable 3.00 MiB

  Allocatable           yes (but full)

  PE Size               4.00 MiB

  Total PE              10114

  Free PE               0

  Allocated PE          10114

  PV UUID               10uSSs-Vbxx-SZAw-l4HS-pSdA-zfzV-wm5BMf


添加硬盘

把硬盘设为6G,

[root@localhost ~]# fdisk -l


/dev/sdd1            2048    10485759     5241856   83  Linux


Disk /dev/sdb: 6442 MB, 6442450944 bytes, 12582912 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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



Disk /dev/sdc: 5368 MB, 5368709120 bytes, 10485760 sectors







新硬盘分区

[root@localhost ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x79185e00.


Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-12582911, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-12582911, default 12582911):

Using default value 12582911

Partition 1 of type Linux and of size 6 GiB is set


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.

[root@localhost ~]#

呵呵,成功了.

[root@localhost ~]# mdadm /dev/md0 -a /dev/sdb1

mdadm: added /dev/sdb1

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdb1[4] sdd1[3] sdc1[1]

      10474496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]

      [======>..............]  recovery = 33.7% (1769268/5237248) finish=0.4min speed=126376K/sec


unused devices: <none>

[root@localhost ~]#