RAID+LVM详解

                                    一.RAID篇

一.什么是RAID

 

磁盘阵列全名是『Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列。 RAID 可以透过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘装置;而这个较大的磁盘功能可不止是储存而已,他还具有数据保护的功能呢。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响

 

二.Raid的级别

1.RAID 0

 RAID 0 又称为 Stripe 或 Striping,它代表了所有 RAID 级别中最高的存储性能。RAID 0 提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
如图 1 所示:系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的 I/O 数据请求被转化为 3 项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立 RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。

                        blob.png

                                             
从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了 3 倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。
RAID 0 的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
RAID 0 具有的特点,使其特别适用于对性能要求较高。

 

2.RAID1

RAID 1 又称为 Mirror 或 Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID1 的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。当读取数据时,系统先从 RAID 0 的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立 Mirror,避免备份盘在发生损坏时,造成不可挽。

          blob.png

3.Raid 4

Raid4带奇偶校验码的独立磁盘结构

RAID 4是以扇区作数据分段,各磁盘相同位置的分段形成一个校验磁盘分段(parity block),放在校验磁盘。这种方式可在不同的磁盘平行执行不同的读取命今,大幅提高磁盘阵列的读取性能;但写入数据时,因受限于校验磁盘,同一时间只能作一次,启动所有磁盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入。但校验磁盘形成RAID 4的瓶颈,降低了性能,因有RAID 5而使得RAID 4较少使用

 

                          blob.png

 

4.raid 5

RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的 RAID 5 为例,其数据存储方式如下图所示:图中,P0 为 D0,D1 和 D2 的奇偶校验信息,其它以此类推。

 

                           blob.png

 

 

RAID 5 不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组
成 RAID5 的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当 RAID5 的一个
磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5 可以理解为是 RAID 0 和 RAID 1 的折衷方案。RAID 5 可以为系统提供数据安全保障,但保障
程度要比 Mirror 低而磁盘空间利用率要比 Mirror 高。RAID 5 具有和 RAID 0 相近似的数据读取速度,只
是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个

 

 

5.RAID6

RADI6技术是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图

                            blob.png

    

RAID-6和RAID-5一样对逻辑盘进行条带化然后存储数据和校验位,只是对每一位数据又增加了一位校验位。这样在使用RAID-6时会有两块硬盘用来存储校验位,增强了容错功能,同时必然会减少硬盘的实际使用容量。以前的raid级别一般只允许一块硬盘坏掉,而RAID-6可以允许坏掉两块硬盘,因此,RAID-6 要求至少4块硬盘。

                       

6.RAID 0+1与RAID10

RAID 0 和 RAID 1 的组合称为 RAID 0+1,或称为 RAID 10。如下所述,它具有一些有趣的优越性。通
过将 RAID 0 分块的速度和 RAID 1 镜像的冗余进行组合,结果产生了一个快速、没有写开销、具有极好冗
余性质的子系统。

Raid 0+1

                          blob.png 

 

Raid 10:先建立raid1,在建raid0

 

                         blob.png

 

RAID1+0与RAID0+1的区别:

RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用。

 

 

 

 

RAID总结:

 

RAID Level

性能提升

冗余能力

空间利用率

磁盘数量(块)

允许磁盘故障数

优点

缺点

RAID 0

读、写提升

100%

至少2

不允许

读写性能,利用率高

缺乏冗余能力

RAID 1

读性能提升,写性能下降

50%

至少2

50%

读性能提升,具有冗余

写性能下降,磁盘利用率低

RAID 4

读、写提升

n*(n-1)/n

至少3

1

读写性能提升

瓶颈在校验盘上

RAID 5

读、写提升

n*(n-1)/n

至少3

1

读写性能提升

仅允许坏一块盘

RAID 6

读、写提升

n*(n-2)/n

至少4块

2

读写性能提升

磁盘利用率降低,写入速度没有raid5块

RAID 1+0

读、写提升

50%

至少4

50%

读写性能提升

磁盘利用率低

RAID 0+1

读、写提升

50%

至少4

50%

读写性能提升

磁盘利用率低,容错性没有raid10好

六、mdadm 工具介绍

 

mdadm(multiple devices admin)是 linux下标准的的软raid管理工具,是一个模式化工具(在不同的模式下);程序工作在内存用户程序区,为用户提供RAID接口来操作内核的模块,实现各种功能

目前支持的模式
LINEAR(线性模式)、RAID0(striping条带模式)、RAID1(mirroring)、 RAID-4、RAID-5、 RAID-6、 RAID-10、 MULTIPATH和FAULTY

LINEAR:线性模式,该模式不是raid的标准模式,其主要作用是可以实现将几块小的硬盘组合为一块大硬盘来使用,数组存储时一次存满一个硬盘在使用下一个硬盘,对上层来说操作的是一个大硬盘,这里就不对该模式进行详解了。

 

命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

 

模式:

        创建:-C

        装配: -A

        监控: -F

        管理:-f, -r, -a

-C: 创建模式

                        -n #: 使用#个块设备来创建此RAID;

                        -l #:指明要创建的RAID的级别;

                        -a {yes|no}:自动创建目标RAID设备的设备文件;

                        -c CHUNK_SIZE: 指明块大小;

                        -x #: 指明空闲盘的个数;

一.RAID创建

1.  创建分区/dev/sdbc5 /dev/sdbc6  /dev/sdb7 容量各5G,类型为fd

[root@localhost ~]# fdisk -l /dev/sdc
 
Disk /dev/sdc: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 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: 0xe57d5d2f
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1958    15727603+   5  Extended
/dev/sdc5               1         654     5253192   fd  Linux raid autodetect
/dev/sdc6             655        1308     5253223+  fd  Linux raid autodetect
/dev/sdc7            1309        1958     5221093+  fd  Linux raid autodetect

 

2.  创建Raid1阵列

[root@localhost ~]# mdadm -C /dev/md0 -a yes -c 128 -l 1 -n 2  /dev/sdc{5,6}
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? 
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started

3.查看raid阵列

[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Sep  3 22:06:01 2016
     Raid Level : raid1
     Array Size : 5216960 (4.98 GiB 5.34 GB)
  Used Dev Size : 5216960 (4.98 GiB 5.34 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
 
    Update Time : Sat Sep  3 23:43:28 2016
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
 
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : c3e420e0:6c7fa523:050ae5f1:ea7febec
         Events : 18
 
    Number   Major   Minor   RaidDevice State
       0       8       37        0      active sync   /dev/sdc5
       1       8       38        1      active sync   /dev/sdc6

4.挂载并查看

[root@localhost /]# mkdir /tmp/raid
[root@localhost /]# mount /dev/md0 /tmp/raid/
[root@localhost /]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   27G  3.6G   22G  15% /
tmpfs                         932M   72K  932M   1% /dev/shm
/dev/sda1                     485M   40M  421M   9% /boot
/dev/md0                      4.9G  138M  4.6G   3% /tmp/raid

5.  开机自动挂载

 

[root@localhost /]# vim /etc/fstab
# /etc/fstab
# Created by anaconda on Mon Aug 22 18:25:35 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=e36e7a7c-97a5-4712-ac29-7973c98c847c /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/tmp/raid               /de/md0                 ext4    defaults        0 0

                                                                     

第二.Raid信息的查看

 

-D:显示raid的详细信息;

         mdadm -D /dev/md#

[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Sep  3 22:06:01 2016
     Raid Level : raid1
     Array Size : 5216960 (4.98 GiB 5.34 GB)
  Used Dev Size : 5216960 (4.98 GiB 5.34 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
 
    Update Time : Sat Sep  3 23:43:28 2016
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
 
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : c3e420e0:6c7fa523:050ae5f1:ea7febec
         Events : 18
 
    Number   Major   Minor   RaidDevice State
       0       8       37        0      active sync   /dev/sdc5
       1       8       38        1      active sync   /dev/sdc6

使用 watch -n 10 'cat /proc/mdstat'查看阵列同步情况

                           

 

第三.Raid阵列的管理

管理模式:

                        -f: 标记指定磁盘为损坏;

                        -a: 添加磁盘

                        -r: 移除磁盘

                        -S:停止RAID

 

RAID管理

1.  给raid-5新增一个spare(空)盘,添加磁盘到阵列中做备用盘(spare)

[root@localhost /]# mdadm -a /dev/md0 /dev/sdc7
mdadm: added /dev/sdc7

2.  模拟故障

[root@localhost /]# mdadm  -f /dev/md0 /dev/sdc5
[root@localhost /]# mdadm /dev/md0 
/dev/md0: 4.98GiB raid1 2 devices, 1 spare. Use mdadm --detail for more detail.
[root@localhost /]# mdadm -D /dev/md0 
/dev/md0:
        Version : 1.2
  Creation Time : Sat Sep  3 22:06:01 2016
     Raid Level : raid1
     Array Size : 5216960 (4.98 GiB 5.34 GB)
  Used Dev Size : 5216960 (4.98 GiB 5.34 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
 
    Update Time : Sat Sep  3 23:54:39 2016
          State : clean, degraded, recovering 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 1
  Spare Devices : 1
 
 Rebuild Status : 68% complete
 
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : c3e420e0:6c7fa523:050ae5f1:ea7febec
         Events : 35
 
    Number   Major   Minor   RaidDevice State
       2       8       39        0      spare rebuilding   /dev/sdc7
       1       8       38        1      active sync   /dev/sdc6
 
       0       8       37        -      faulty   /dev/sdc5

   

3.  移除故障的硬盘

[root@localhost /]# mdadm -r /dev/md0 /dev/sdc5
mdadm: hot removed /dev/sdc5 from /dev/md0
[root@localhost /]# mdadm -D /dev/md0 
/dev/md0:
        Version : 1.2
  Creation Time : Sat Sep  3 22:06:01 2016
     Raid Level : raid1
     Array Size : 5216960 (4.98 GiB 5.34 GB)
  Used Dev Size : 5216960 (4.98 GiB 5.34 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
 
    Update Time : Sat Sep  3 23:55:29 2016
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
 
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : c3e420e0:6c7fa523:050ae5f1:ea7febec
         Events : 44
 
    Number   Major   Minor   RaidDevice State
       2       8       39        0      active sync   /dev/sdc7
       1       8       38        1      active sync   /dev/sdc6

4. 停止RAID

 

[root@localhost /]# umount /tmp/raid/
[root@localhost /]# mdadm -S /dev/md0 
mdadm: stopped /dev/md0
[root@localhost /]# mdadm -D /dev/md0 
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost /]#

                                           二.LVM篇

一、简介

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

基本的逻辑卷管理概念:

PVPhysical Volume物理卷 
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备

VGVolumne Group卷组 
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LVLogical Volume逻辑卷 
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

关系图如下:

    blob.png

PEPhysical Extent物理块

LVM 默认使用4MBPE区块,而LVMLV最多仅能含有65534PE (lvm1 的格式),因此默认的LVMLV最大容量为4M*65534/(1024M/G)=256GPE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE 会影响到LVM 的最大容量!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

blob.png

二.Linux lvm的工具

pv管理工具:

       

        pvs:简要pv信息显示
        pvdisplay:显示pv的详细信息
        pvcreate /dev/DEVICE: 创建pv

 

vg管理工具:

       

        vgs  简要vg信息显示
        vgdisplay  显示vg的详细信息
        vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]创建vg
         -s:指定pe大小
        vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]   扩展vg容量
        vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]   减小vg容量
        vgremove  vg的移除

lv管理工具:

     

lvs  简要lv显示
        lvdisplay  详细lv显示
        lvcreate -L #[mMgGtT] -n NAME VolumeGroup    lv的创建
        lvremove /dev/VG_NAME/LV_NAME       lv的移除

扩展逻辑卷:
        # lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME 
        # resize2fs /dev/VG_NAME/LV_NAME

  

缩减逻辑卷:
        # umount /dev/VG_NAME/LV_NAME
        # e2fsck -f /dev/VG_NAME/LV_NAME
        # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
        # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
        # mount

快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name

     -L:指定快照大小

     -p: 指定快照权限 r|rw

     -s:指定创建快照

     -n:快照名称

     


实验:

  一.lvm的创建     

1 创建分区

使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e

[root@localhost ~]# fdisk -l /dev/sdd
 
Disk /dev/sdd: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0xbbe9bf26
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        2610    20964793+   5  Extended
/dev/sdd5               1         654     5253192   8e  Linux LVM
/dev/sdd6             655        1308     5253223+  8e  Linux LVM
/dev/sdd7            1309        1962     5253223+  8e  Linux LVM

2 创建PV

[root@localhost ~]# pvcreate  /dev/sdd{5,6}
  Physical volume "/dev/sdd5" successfully created
  Physical volume "/dev/sdd6" successfully created

3.查看pv

[root@localhost ~]# pvdisplay 
 
  "/dev/sdd5" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd5
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               32UtIW-NeDz-oTVa-hmHD-BJ4U-hD2o-5tN3yM
   
  "/dev/sdd6" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd6
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               GPNOTF-rv8H-DS1Z-kQT7-WAQC-bMX4-L5dowi

3.创建VG

[root@localhost ~]# vgcreate vg0 /dev/sdd{5,6}
  Volume group "vg0" successfully created

     4.查看VG

[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  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               10.02 GiB
  PE Size               4.00 MiB
  Total PE              2564
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2564 / 10.02 GiB
  VG UUID               hf8cX5-Y2jb-FLh9-0ijm-cZmX-47wQ-KVU0pk

5.创建lv

 

创建了一个名字为lvm01,容量大小是6G的分区,其中:-L:指定LV的大小 -n:指定LV的名。vg0:表示从这个VG中划分LV;

[root@localhost ~]# lvcreate -L 6G -n lvm01 vg0
  Logical volume "lvm01" created

6.lv格式化及挂载

 

下一步需要对LV进行格式化(使用mksf进行格式化操作),然后LV才能存储资料

[root@localhost ~]# mke2fs -t ext4 /dev/vg0/lvm01 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
393216 inodes, 1572864 blocks
78643 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1610612736
48 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
       32768, 98304, 163840, 229376, 294912, 819200, 884736
 
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override

7.挂载之后,可以看到此LV的容量

[root@localhost ~]# mkdir /tmp/lvm
[root@localhost ~]# mount /dev/vg0/lvm01 /tmp/lvm/
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lvm01
  LV Name                lvm01
  VG Name                vg0
  LV UUID                y0q9jX-MiGc-eS6u-YVoL-n834-Hf2d-Bqcfz0
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-09-04 00:24:35 +0800
  LV Status              available
  # open                 1
  LV Size                6.00 GiB
  Current LE             1536
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

8.开机自动挂载

 

 [root@localhost ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Mon Aug 22 18:25:35 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=e36e7a7c-97a5-4712-ac29-7973c98c847c /boot      ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                     tmpfs   defaults        0 0
devpts                  /dev/pts                     devpts  gid=5,mode=620  0 0
sysfs                   /sys                         sysfs   defaults        0 0
proc                    /proc                        proc    defaults        0 0
/tmp/lvm                /dev/vg0/lvm01               ext4    defaults        0 0

二、扩容VG,LV

vgextend vg0 /dev/sdd7    #扩展vg0

[root@localhost ~]# vgextend vg0 /dev/sdd7
  No physical volume label read from /dev/sdd7
  Physical volume /dev/sdd7 not found
  Physical volume "/dev/sdd7" successfully created
  Volume group "vg0" successfully extended
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               15.02 GiB
  PE Size               4.00 MiB
  Total PE              3846
  Alloc PE / Size       1536 / 6.00 GiB
  Free  PE / Size       2310 / 9.02 GiB
  VG UUID               hf8cX5-Y2jb-FLh9-0ijm-cZmX-47wQ-KVU0pk

2.lvextend –L 1G /dev/vg0/lvm01 #扩展lvm增加1G空间

[root@localhost ~]# lvextend  -L +1G /dev/vg0/lvm01  
  Extending logical volume lvm01 to 7.00 GiB
  Logical volume lvm01 successfully resized
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lvm01
  LV Name                lvm01
  VG Name                vg0
  LV UUID                y0q9jX-MiGc-eS6u-YVoL-n834-Hf2d-Bqcfz0
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-09-04 00:24:35 +0800
  LV Status              available
  # open                 1
  LV Size                7.00 GiB
  Current LE             1792
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

3.resize2fs /dev/vg0 /lvm01#执行该重设大小,对于当前正在使用的Lvm01有效

df –h #查看挂载情况,已经扩容

[root@localhost ~]# resize2fs /dev/vg0/lvm01 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg0/lvm01 is mounted on /tmp/lvm; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg0/lvm01 to 1835008 (4k) blocks.
The filesystem on /dev/vg0/lvm01 is now 1835008 blocks long.
 
[root@localhost ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   27G  3.6G   22G  15% /
tmpfs                         932M   72K  932M   1% /dev/shm
/dev/sda1                     485M   40M  421M   9% /boot
/dev/mapper/vg0-lvm01         6.9G  142M  6.5G   3% /tmp/lvm

三.减少VG,LV

 

缩减逻辑卷:

     1.# umount /dev/VG_NAME/LV_NAME  卸载设备

[root@localhost ~]# umount /dev/vg0/lvm01

    2. # e2fsck -f /dev/VG_NAME/LV_NAME 检查逻辑卷

[root@localhost ~]# e2fsck -f /dev/vg0/lvm01 
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lvm01: 11/458752 files (0.0% non-contiguous), 65023/1835008 blocks

    3. # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] 重设大小

[root@localhost ~]# resize2fs  /dev/vg0/lvm01 5G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/lvm01 to 1310720 (4k) blocks.
The filesystem on /dev/vg0/lvm01 is now 1310720 blocks long.

     4.# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME  减少逻辑卷容量

[root@localhost ~]# lvreduce -L 5G /dev/vg0/lvm01 
  WARNING: Reducing active logical volume to 5.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvm01? [y/n]: y
  Reducing logical volume lvm01 to 5.00 GiB
  Logical volume lvm01 successfully resized

    5. # mount 重新挂载

[root@localhost ~]# mount /dev/vg0/lvm01  /tmp/lvm/
[root@localhost ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   27G  3.6G   22G  15% /
tmpfs                         932M   72K  932M   1% /dev/shm
/dev/sda1                     485M   40M  421M   9% /boot
/dev/mapper/vg0-lvm01         5.0G  140M  4.6G   3% /tmp/lvm

四.快照

  快照技术是一种摄影技术,随着存储应用需求的提高,用户需要在线方式进行数据保护,快照就是在线存储设备防范数据丢失的有效方法之一

snapshot
		lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
 
                  -L:指定快照大小
                  -p:指定逻辑卷的权限r:w
                  -s:指定为快照
                  -n:快照名称
  1. 快照创建

[root@localhost ~]# lvcreate -L 1G -p r -s -n sna_lvm01 /dev/vg0/lvm01 
  Logical volume "sna_lvm01" created

 2.查看快照

[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lvm01
  LV Name                lvm01
  VG Name                vg0
  LV UUID                y0q9jX-MiGc-eS6u-YVoL-n834-Hf2d-Bqcfz0
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-09-04 00:24:35 +0800
  LV snapshot status     source of
                         sna_lvm01 [active]
  LV Status              available
  # open                 1
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

原创文章,作者:a295053193,如若转载,请注明出处:http://www.178linux.com/43388

(6)
a295053193a295053193
上一篇 2016-09-07
下一篇 2016-09-07

相关推荐

  • shell脚本基础

    shell脚本基础 基本介绍 Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用…

    2017-07-01
  • 文件查找locate 和 find

    大纲 一、前言 二、locate 三、find 一、前言 在windows下,我们查找文件,可以在搜索里面,输入文件名或通配符就可以进行搜索。在Linux下,要查找文件可以找locate 或 find命令进行查找,而且这些命令还有其他特别的功能。 二、locate 特点:此命令是非实时查找命令,依赖于索引,因此搜索速度快。但是索引的构建是当系统空闲时由系统自…

    Linux干货 2015-05-11
  • Linux文件类型以及颜色标识

    1、Linux文件类型介绍   Linux系统不同于window系统,两者文件类型也有很大的差异。Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普…

    Linux干货 2016-10-17
  • linux下解压命令大全

    .tar  解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .t…

    Linux干货 2017-07-11
  • AWK基础用法

    AWK: print 例子:给没个/etc/passwd下的用户都打招呼hello 答案: awk ‘{print “hello:”$1}’ /etc/passwd 内建变量 FS : 输入分隔符 OFS: 输出分隔符 RS : 行输入分隔符 ORS: 行输出分割符 NF : 字段数 NR : 行号数 FNR: 每个文件的行号数 ARGC: 参数个数 ARG…

    Linux干货 2017-05-22