system2之:4-LVM逻辑卷管理


LVM有扩容功能,无容错功能

lvm1.png
物理卷
[root@localhost ~]# pvscan
  PV /dev/sda2   VG VolGroup   lvm2 [19.51 GiB / 0    free]
  Total: 1 [19.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 0 [0   ]

[root@localhost ~]# pvcreate  /dev/sd[bcd]     把bcd磁盘都设置为物理卷
  Writing physical volume data to disk "/dev/sdb"
  Physical volume "/dev/sdb" successfully created
  Writing physical volume data to disk "/dev/sdc"
  Physical volume "/dev/sdc" successfully created
  Writing physical volume data to disk "/dev/sdd"
  Physical volume "/dev/sdd" successfully created
[root@localhost ~]#

[root@localhost ~]# pvdisplay    显示物理卷信息
  --- Physical volume ---  原来就有的
  PV Name               /dev/sda2
  VG Name               VolGroup
  PV Size               19.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4994
  Free PE               0
  Allocated PE          4994
  PV UUID               Pap7Ba-SA2w-3Ymo-tLFS-QG8H-bPsl-Tf04iJ

以下是刚分配的
  "/dev/sdb" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO                   可以分配的
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3XM4hj-w10O-YgTi-xEKW-05tA-dAZr-Ql3Ica
   
  "/dev/sdc" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3Qc3sW-Hol0-ekui-2CbJ-ECuh-X3ao-Y0fGr5
   
  "/dev/sdd" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               cTsZmX-mV5F-wYm2-l5O8-0pSD-otdT-rbaG5x

  [root@localhost ~]# pvremove  /dev/sdd
  Labels on physical volume "/dev/sdd" successfully wiped
[root@localhost ~]# pvscan
  PV /dev/sda2   VG VolGroup        lvm2 [19.51 GiB / 0    free]
  PV /dev/sdb                       lvm2 [10.00 GiB]
  PV /dev/sdc                       lvm2 [10.00 GiB]
  Total: 3 [39.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 2 [20.00 GiB]
[root@localhost ~]#


卷组:
[root@localhost ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2

[root@localhost ~]# vgcreate  aligege  /dev/sd[bc]   两种创建方法
[root@localhost ~]# vgcreate  aligege  /dev/sdb /dev/sdc
 Volume group "aligege" successfully created

[root@localhost ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "aligege" using metadata type lvm2
  Found volume group "VolGroup" using metadata type lvm2
[root@localhost ~]#


[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               aligege
  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.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               U1swqi-DDR9-0jHR-1Lh5-yq6c-iav6-Wtj185
   
  --- Volume group ---
  VG Name               VolGroup
  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               19.51 GiB
  PE Size               4.00 MiB   卷组分配后PE也就分配了,之前没有
  Total PE              4994
  Alloc PE / Size       4994 / 19.51 GiB
  Free  PE / Size       0 / 0   
  VG UUID               j3HHZT-spWa-PQtD-mA3c-hNNK-t0gk-QfkENs
[root@localhost ~]#
  
[root@localhost ~]# vgremove  aligege
  Volume group "aligege" successfully removed
[root@localhost ~]#

逻辑卷操作:

[root@localhost ~]# lvcreate  -L 15G -n HR-cost  aligege
  Logical volume "HR-cost" created
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/aligege/HR-cost
  LV Name                HR-cost
  VG Name                aligege
  LV UUID                HlViMr-3lCN-JAK3-muyt-y1Js-2CWW-G3JmaB
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2013-07-20 19:01:20 +0800
  LV Status              available
  # open                 0
  LV Size                15.00 GiB
  Current LE             3840
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_root
  LV Name                lv_root
  VG Name                VolGroup
  LV UUID                APrXHZ-xATh-g51W-7Hpc-UQYL-50oM-xpY7py
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2013-07-18 21:12:47 +0800
  LV Status              available
  # open                 1
  LV Size                17.48 GiB
  Current LE             4474
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_swap
  LV Name                lv_swap
  VG Name                VolGroup
  LV UUID                wG2cMD-ZHph-bgXH-3H1k-x04e-YKFi-bazXir
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2013-07-18 21:12:51 +0800
  LV Status              available
  # open                 1
  LV Size                2.03 Gi B
  Current LE             520
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
[root@localhost ~]#

格式化
[root@localhost ~]# mkfs.ext4  /dev/aligege/HR-cost
挂载使用
[root@localhost ~]# mkdir /HR
[root@localhost ~]# mount /dev/aligege/HR-cost  /HR
[root@localhost ~]# df -Th
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
              ext4     18G  1.8G   15G  11% /
tmpfs        tmpfs    516M     0  516M   0% /dev/shm
/dev/sda1     ext4    485M   31M  429M   7% /boot
/dev/mapper/aligege-HR--cost
              ext4     15G  166M   14G   2% /HR
[root@localhost ~]#

也可以使用分区,这里直接用的是磁盘 ,道理是差不多的。


扩容:

vgextend   卷组名字  磁盘物理卷名字


[root@localhost ~]# pvcreate /dev/sd[defg]
  Writing physical volume data to disk "/dev/sdd"
  Physical volume "/dev/sdd" successfully created
  Writing physical volume data to disk "/dev/sde"
  Physical volume "/dev/sde" successfully created
  Writing physical volume data to disk "/dev/sdf"
  Physical volume "/dev/sdf" successfully created
  Writing physical volume data to disk "/dev/sdg"
  Physical volume "/dev/sdg" successfully created

[root@localhost ~]# vgextend  aligege /dev/sd[defg]
  Volume group "aligege" successfully extended

[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               aligege
  System ID             
  Format                lvm2
  Metadata Areas        6
  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                6
  Act PV                6
  VG Size               59.98 GiB    扩容成功
  PE Size               4.00 MiB
  Total PE              15354
  Alloc PE / Size       3840 / 15.00 GiB
  Free  PE / Size       11514 / 44.98 GiB
  VG UUID               sDhCUJ-XsJf-Yt0B-bKSt-kbF9-XU09-8jrzjT
   

[root@localhost ~]# lvextend  -L +20G /dev/aligege/HR-cost
  Extending logical volume HR-cost to 35.00 GiB
  Logical volume HR-cost successfully resized
[root@localhost ~]#
[root@localhost ~]# df -Th
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
              ext4     18G  1.8G   15G  11% /
tmpfs        tmpfs    516M     0  516M   0% /dev/shm
/dev/sda1     ext4    485M   31M  429M   7% /boot
/dev/mapper/aligege-HR--cost
              ext4     15G  166M   14G   2% /HR
[root@localhost ~]#

这里还是15G??为什么?
重新识别一下:

[root@localhost ~]# resize2fs  /dev/aligege/HR-cost
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/aligege/HR-cost is mounted on /HR; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 3
Performing an on-line resize of /dev/aligege/HR-cost to 9175040 (4k) blocks.
The filesystem on /dev/aligege/HR-cost is now 9175040 blocks long.
[root@localhost ~]#
[root@localhost ~]# df -Th
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
              ext4     18G  1.8G   15G  11% /
tmpfs        tmpfs    516M     0  516M   0% /dev/shm
/dev/sda1     ext4    485M   31M  429M   7% /boot
/dev/mapper/aligege-HR--cost
              ext4     35G  173M   33G   1% /HR
[root@localhost ~]#
这样就变成35G了。

lvm2.png
[root@localhost ~]# umount  /dev/aligege/HR-cost
[root@localhost ~]# df -Th
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
              ext4     18G  1.8G   15G  11% /
tmpfs        tmpfs    516M     0  516M   0% /dev/shm
/dev/sda1     ext4    485M   31M  429M   7% /boot
[root@localhost ~]# lvremove  /dev/aligege/HR-cost
Do you really want to remove active logical volume HR-cost? [y/n]: y
  Logical volume "HR-cost" successfully removed
[root@localhost ~]# vgremove  /dev/aligege
  Volume group "aligege" successfully removed
[root@localhost ~]# pvremove  /dev/sdb[bcdefg]
  Physical Volume /dev/sdb[bcdefg] not found
[root@localhost ~]# pvremove  /dev/sd[bcdefg]
  Labels on physical volume "/dev/sdb" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped
  Labels on physical volume "/dev/sdd" successfully wiped
  Labels on physical volume "/dev/sde" successfully wiped
  Labels on physical volume "/dev/sdf" successfully wiped
  Labels on physical volume "/dev/sdg" successfully wiped
[root@localhost ~]#

5,6可以做也可以不做,6是相对于分区来说的,直接在磁盘进行不需要。


PV--》VG--》LV这个过程可以形象的跟建设一个公司筹集资金,再计划资金的使用一样。如下图:

LVM3.png

这样理解起来就简单很多了。

安装系统的时候,红帽默认采用lvm方式

boot分区不能创建LVM
LVM的优点是当/分区空间不足的时候还可以扩容。



RAID

独立磁盘冗余数组 RAID,RedundantArray ofIndependentDisks ),旧称 廉价磁盘冗余数组 RAID,RedundantArray ofInexpensiveDisks ),简称 硬盘阵列 。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。

详细介绍参看: http://zh.wikipedia.org/wiki/RAID

lvm4.png

RAID卡
图:
lvm5.png

在服务器里,硬件RAID用的比较多。

RAID 0:条带卷(
将多个磁盘合并成一个大的磁盘,不具有冗余,并行 I/O ,速度最快。
只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量,读写速度快。(没有容错功能)

RAID 1: 镜像卷
50%空间利用率
有容错功能
坏一块另外一块可以顶上,一般拿两块磁盘做镜像卷 (两块磁盘一模一样)

RAID 4:带校验的条带
都是放到一块磁盘上的,

 

RAID  5

是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5 至少需要三颗硬盘

(n-1)/n利用率

有容错功能,最多可以坏一块

RAID 6
与RAID 5相比, RAID 6 增加了第二个独立的奇偶校验信息块 ,所以最多可以坏两块。
至少四块,利用率(n-1)/n

RAID 10:镜像+条带
4块磁盘,有容错功能,最多可以坏2块磁盘 (利用率50%)

RAID 10/01:细分为RAID 1+0或RAID 0+1

性能上,RAID 0+1比RAID 1+0有着更快的读写速度。

可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。

因此,RAID 10远较RAID 01常用,零售 主板 绝大部份支持RAID 0/1/5/10,但不支持RAID 01。


硬RAID可以直接通过RAID卡恢复,软raid则要经过cpu

lvm6.png
这几个一般选RAID6,最多可以坏两块。

mdadm命令
用途:创建,修改监控RAID阵列


1。新建raid5卷,使用4块磁盘作raid5,1块磁盘作热备
 mdadm -C /dev/md1 -l5 -n4 -x1 /dev/sd[efghi]   会自动抽取一块做热备
2。格式化raid5设备
mkfs.ext3 /dev/md1
3.挂载使用 mkdir /music mount /dev/md1  /music
4.自动挂载功能,修改/etc/fstab文件,添加
/dev/md1     /music     ext3   defaults  0 0

让其中的一块失效,然后看raid5是否能够继续使用
mdadm /dev/md1  -f /dev/sde
使用cat /proc/mdstat命令查看修复过程

删除有问题的磁盘,添加一个好的磁盘作热备,要求磁盘>容量一致
mdadm  /dev/md1 -r /dev/sde  -a /dev/sdk


=======
[root@localhost ~]# cat /proc/mdstat 查看raid的构建过程
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1] sdb[0]
      3144192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [=============>.......]  recovery = 68.5% (719232/1048064) finish=0.0min speed=143846K/sec
      
unused devices: <none>
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1] sdb[0]
      3144192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>
[root@localhost ~]#

[UUUU]---》表示4个use:在使用

做raid5最好五个容量都是一样的,一个厂家

[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
        Version : 1.2
  Creation Time : Sun Jul 21 01:21:33 2013
     Raid Level : raid5
     Array Size : 3144192 (3.00 GiB 3.22 GB)
  Used Dev Size : 1048064 (1023.67 MiB 1073.22 MB)
   Raid Devices : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Sun Jul 21 01:21:44 2013
          State : clean
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 4e379d32:20a354d7:c6baee5e:68bd25cb
         Events : 18
                    主编号   副编号
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       5       8       64        3      active sync   /dev/sde

       4       8       80        -      spare   /dev/sdf   热备(spare)
[root@localhost ~]#

[root@localhost ~]# mdadm -Ds
ARRAY /dev/md5 metadata=1.2 spares=1 name=localhost.localdomain:5 UUID=4e379d32:20a354d7:c6baee5e:68bd25cb
[root@localhost ~]#

[root@localhost ~]# mdadm /dev/md5 -f /dev/sdd  损坏一块
mdadm: set /dev/sdd faulty in /dev/md5
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde[5] sdf[4] sdd[2](F) sdc[1] sdb[0]
      3144192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UU_U]
      [=>...................]  recovery =  9.5% (100480/1048064) finish=0.1min speed=100480K/sec
      
unused devices: <none>
[root@localhost ~]#
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde[5] sdf[4] sdd[2](F) sdc[1] sdb[0]
      3144192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] 一会儿又被备用的修复了
      
unused devices: <none>
[root@localhost ~]#
[root@localhost ~]# mdadm /dev/md5 -f /dev/sde  再毁坏一块
mdadm: set /dev/sde faulty in /dev/md5
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde[5](F) sdf[4] sdd[2](F) sdc[1] sdb[0]
      3144192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      
unused devices: <none>
[root@localhost ~]# cd /file  但是还能访问,有容错功能
[root@localhost file]# ls
lost+found
[root@localhost file]# mkdir haha
[root@localhost file]# ls
haha  lost+found
[root@localhost file]#

[root@localhost file]# mdadm -D /dev/md5
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       80        2      active sync   /dev/sdf
       3       0        0        3      removed

       2       8       48        -      faulty spare   /dev/sdd
       5       8       64        -      faulty spare   /dev/sde

[root@localhost file]# mdadm /dev/md5 -r /dev/sd[de]
mdadm: hot removed /dev/sdd from /dev/md5              热移除
mdadm: hot removed /dev/sde from /dev/md5
[root@localhost file]#

[root@localhost file]# mdadm -D /dev/md5
 Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       80        2      active sync   /dev/sdf
       3       0        0        3      removed

[root@localhost file]# mdadm /dev/md5 -a /dev/sd[h]  新增
mdadm: added /dev/sdh
[root@localhost file]# mdadm /dev/md5 -a /dev/sd[g]
mdadm: added /dev/sdg
[root@localhost file]# mdadm -D /dev/md5
/dev/md5:
        Version : 1.2
  Creation Time : Sun Jul 21 01:21:33 2013
     Raid Level : raid5
     Array Size : 3144192 (3.00 GiB 3.22 GB)
  Used Dev Size : 1048064 (1023.67 MiB 1073.22 MB)
   Raid Devices : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Sun Jul 21 01:50:03 2013
          State : clean
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 4e379d32:20a354d7:c6baee5e:68bd25cb
         Events : 72

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       80        2      active sync   /dev/sdf
       5       8      112        3      active sync   /dev/sdh

       6       8       96        -      spare   /dev/sdg  把最后建的当备用
[root@localhost file]#
lvm7.png



Screenshot-10.png

先将磁盘做成RAID再做成pv,然后再化LVM(物理卷不一定是硬盘,也可以是 RAID)
因为RAID有容错功能,pv能够扩容,二者结合性能更好。





posted on 2013-08-02 22:23  you Richer  阅读(426)  评论(0编辑  收藏  举报