第十五章 LVM 管理和ssm 存储管理器使用

  本节所讲内容

15.1 LVM  的工作原理

15.2  创建LVM  的基本步骤

15.3  实战ssm  工具为公司的邮件服务创建可动态扩容的存储池

LVM 的基本概念

实战场景:  对于生产环境下的服务器来说,如果存储数据的分区磁盘空间不够了怎么办




15.1.1  LVM 常用的术语 

物理存储介质:  LVM  存储介质可以是磁盘分区,整个磁盘,RAID  阵列或SAN  磁盘

设备必须初始化为LVM   物理卷,才能与LVM  结合使用

物理卷  PV   物理卷就是LVM  的基本存储逻辑块,但是和基本的物理存储介质  如分区,磁盘等比较,缺包含有与LVM  相关的管理参数,创建物理卷它可以用硬盘分区,也可以硬盘本身

卷组:  一个LVM  卷组有一个或者多个物理卷组成

逻辑卷:  LV  建立在VG上,可以在LV之上建立文件系统

PE  PV   物理卷中可以分配的最小存储单位,PE的大小可以是指定的,默认4MB 

LE   LV  逻辑卷中分配的最下存储单元,在一个卷组中,LE的大小和PE是相同的

应且一一对应,




  lvM  常用的命令

下面的操作会用的一些查看命令


15.2.2  创建并使用LVM   逻辑卷

1  创建PV 

添加一个sdb   磁盘

  fdisk  /dev/sdb    创建4个分区,每个分区1个G

 ls   /dev/sdb* 


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

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x1cc54092 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):p                 

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x1cc54092

  设备 Boot      Start        End      Blocks  Id  System

命令(输入 m 获取帮助):n

Partition type:

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

  e  extended

Select (default p):

Using default response p

分区号 (1-4,默认 1):

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G

分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n

Partition type:

  p  primary (1 primary, 0 extended, 3 free)

  e  extended

Select (default p): p

分区号 (2-4,默认 2):

起始 扇区 (2099200-41943039,默认为 2099200):

将使用默认值 2099200

Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):+1G

分区 2 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n

Partition type:

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

  e  extended

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (4196352-41943039,默认为 4196352):

将使用默认值 4196352

Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G

分区 3 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n

Partition type:

  p  primary (3 primary, 0 extended, 1 free)

  e  extended

Select (default e): p

已选择分区 4

起始 扇区 (6293504-41943039,默认为 6293504):

将使用默认值 6293504

Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+1G

分区 4 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x1cc54092

  设备 Boot      Start        End      Blocks  Id  System

/dev/sdb1            2048    2099199    1048576  83  Linux

/dev/sdb2        2099200    4196351    1048576  83  Linux

/dev/sdb3        4196352    6293503    1048576  83  Linux

/dev/sdb4        6293504    8390655    1048576  83  Linux

命令(输入 m 获取帮助):t

分区号 (1-4,默认 4):2

Hex 代码(输入 L 列出所有代码):l

0  空              24  NEC DOS        81  Minix / 旧 Linu bf  Solaris       

1  FAT12          27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-

2  XENIX root      39  Plan 9          83  Linux          c4  DRDOS/sec (FAT-

3  XENIX usr      3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-

4  FAT16 <32M      40  Venix 80286    85  Linux 扩展      c7  Syrinx       

5  扩展            41  PPC PReP Boot  86  NTFS 卷集      da  非文件系统数据

6  FAT16          42  SFS            87  NTFS 卷集      db  CP/M / CTOS / .

7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具     

8  AIX            4e  QNX4.x 第2部分  8e  Linux LVM      df  BootIt       

9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问     

a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O       

b  W95 FAT32      51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor     

c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs       

e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD        ee  GPT           

f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD        ef  EFI (FAT-12/16/

10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC 

11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor     

12  Compaq 诊断    5c  Priam Edisk    a9  NetBSD          f4  SpeedStor     

14  隐藏的 FAT16 <3 61  SpeedStor      ab  Darwin 启动    f2  DOS 次要     

16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS   

17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs        fc  VMware VMKCORE

18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap      fd  Linux raid 自动

1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep       

1c  隐藏的 W95 FAT3 75  PC/IX          be  Solaris 启动    ff  BBT           

1e  隐藏的 W95 FAT1 80  旧 Minix     

Hex 代码(输入 L 列出所有代码):83

Hex 代码(输入 L 列出所有代码):83

已将分区“Linux”的类型更改为“Linux”

命令(输入 m 获取帮助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

root@xueshen65 ~]# ls /dev/sdb*

/dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4

[root@xueshen65 ~]# pvcreate /dev/sdb{1,2,3,4}

  Physical volume "/dev/sdb1" successfully created.

  Physical volume "/dev/sdb2" successfully created.

  Physical volume "/dev/sdb3" successfully created.

  Physical volume "/dev/sdb4" successfully created.

  3  root@xueshen65 ~]# pvdisplay /dev/sdb1

  "/dev/sdb1" is a new physical volume of "1.00 GiB"

  --- NEW Physical volume ---

  PV Name              /dev/sdb1

  VG Name             

  PV Size              1.00 GiB

  Allocatable          NO

  PE Size              0 

  Total PE              0

  Free PE              0

  Allocated PE          0

  PV UUID              GJpAs1-Pi10-k1xj-INGu-YRVO-Cfr0-aldpkk


创建vg 

1。en65 ~]# vgcreate vg01 /dev/sdb1   

  Volume group "vg01" successfully created

2  [root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  1  0  0 wz--n- 1020.00m 1020.00m

3  root@xueshen65 ~]# vgdisplay vg01

  --- Volume group ---

  VG Name              vg01

  System ID           

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  1

  VG Access            read/write

4  

此时看到sdb1  属于vg01   了

创建vg  卷组

语法  vgcreate   vg名字   pv  的名字

  创建LV 

lvcreate -n   指定新逻辑卷的名字, -L   指定lv  的大小  SIZE  (M,G)  (-l:小l  指定LE的数量)vgname  

[root@xueshen65 ~]# lvcreate -n lv01 -L 16M vg01

  Logical volume "lv01" created.

root@xueshen65 ~]# lvcreate -n lv02 -l 4 vg01

  Logical volume "lv02" created

使用lvs   查一下    发现打下是一样的

root@xueshen65 ~]# lvs

  LV  VG  Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv01 vg01 -wi-a----- 16.00m                                                   

  lv02 vg01 -wi-a----- 16.00m   

[root@xueshen65 ~]# pvdisplay /dev/sdb1    #  查看

  --- Physical volume ---

  PV Name              /dev/sdb1

  VG Name              vg01

  PV Size              1.00 GiB / not usable 4.00 MiB

  Allocatable          yes

  PE Size              4.00 MiB

  Total PE              255

  Free PE              247

  Allocated PE          8  已经分配使用了8个PE 


  PV UUID              GJpAs1-Pi10-k1xj-INGu-YRVO-Cfr0-aldpkk

2.6  格式化lv  文件系统格式与挂载

   mkdir  /lv01 

  互动lv01  在哪里?  

root@xueshen65 ~]# mkdir /lv01

[root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  1  2  0 wz--n- 1020.00m 988.00m

[root@xueshen65 ~]# ls /dev/vg01

lv01  lv02

[root@xueshen65 ~]# ls /dev/vg01/lv01

/dev/vg01/lv01

[root@xueshen65 ~]# ll !$

ll /dev/vg01/lv01

lrwxrwxrwx. 1 root root 7 4月  3 22:03 /dev/vg01/lv01 -> ../dm-0

ll   /dev/vg01/lv01  -l   其实lv01  是dm-0   的软连接 

格式化 

root@xueshen65 ~]# mkfs.ext4 /dev/vg01/lv01

挂载  mount   /dev/vg01/lv01  /lv01  

[root@xueshen65 ~]# df -h /lv01/

文件系统              容量  已用  可用 已用% 挂载点

/dev/mapper/vg01-lv01  15M  268K  14M    2% /lv01

开机自动挂载  echo   "/dev/vg01/lv01  /lv01 ext4 defaults 0 0" >>  /etc/fstab  


root@xueshen65 ~]# echo "/dev/vg01/lv01 /lv01 ext4 defaults 0 0" >> /etc/fstab   开机自动挂载

[root@xueshen65 ~]# umount /lv01/

umount: /lv01/:未挂载

[root@xueshen65 ~]# mount -a

[root@xueshen65 ~]# df -h /lv01/

文件系统              容量  已用  可用 已用% 挂载点

/dev/mapper/vg01-lv01  15M  268K  14M    2% /lv01

15.2.3  指定PE   大小用

指定PE大小用的参数 : -S    如果存储的数据都是大文件,那么PE尽量调大,读取速度快

HDFS,ceph  ,swift  ,gfs   ,mFS 

root@xueshen65 ~]# vgcreate -s 16M vg02 /dev/sdb2

  Volume group "vg02" successfully created

[root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  1  2  0 wz--n- 1020.00m  988.00m

  vg02  1  0  0 wz--n- 1008.00m 1008.00m

查看更清楚点

root@xueshen65 ~]# vgdisplay vg02

  --- Volume group ---

  VG Name              vg02

  System ID           

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  1

  VG Access            read/write

  VG Status            resizable


root@xueshen65 ~]# lvs

  LV  VG  Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv01 vg01 -wi-ao---- 16.00m                                                   

  lv02 vg01 -wi-a----- 16.00m           

  [root@xueshen65 ~]# lvextend -L +30M /dev/vg01/lv01    扩容30M    

  扩容30m  ===   -L  +30M 

  扩容到30M         -L   30  M

  Rounding size to boundary between physical extents: 32.00 MiB.

  Size of logical volume vg01/lv01 changed from 16.00 MiB (4 extents) to 48.00 MiB (12 extents).

  Logical volume vg01/lv01 successfully resized.

   

[root@xueshen65 ~]# resize2fs /dev/vg01/lv01

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/vg01/lv01 is mounted on /lv01; on-line resizing required

old_desc_blocks = 1, new_desc_blocks = 1

The filesystem on /dev/vg01/lv01 is now 49152 blocks long.

使用df  -h   /lv01/ 


掌握方法3  使用lvextend    命令中加入参数-r   .它是支持多种不同的文件系统

比如  ext3,  ext 4     xfs   


扩容到80M

[root@xueshen65 ~]# lvextend -L 80M -r /dev/vg01/lv01      直接一步到位,不用在扩文件系统了

  Size of logical volume vg01/lv01 changed from 48.00 MiB (12 extents) to 80.00 MiB (20 extents).

  Logical volume vg01/lv01 successfully resized.

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/mapper/vg01-lv01 is mounted on /lv01; on-line resizing required

old_desc_blocks = 1, new_desc_blocks = 1

The filesystem on /dev/mapper/vg01-lv01 is now 81920 blocks long.

15.2.5   VG扩容

root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  1  2  0 wz--n- 1020.00m  924.00m

  vg02  1  0  0 wz--n- 1008.00m 1008.00m

场景  扩容的场景,vg  劵组中的空间不够,需要添加新的硬盘进来

  pvcreate    /dev/sdb3    场景pv   

1)

[root@xueshen65 ~]# vgextend vg01 /dev/sdb3    扩容成功

  Volume group "vg01" successfully extended

3)

[root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  2  2  0 wz--n-    1.99g  <1.90g

  vg02  1  0  0 wz--n- 1008.00m 1008.00m

15.2.6  LVM   缩小  

1) [root@xueshen65 ~]# lvreduce -L 20M /dev/vg01/lv01    缩小

  WARNING: Reducing active and open logical volume to 20.00 MiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg01/lv01? [y/n]: y

  Size of logical volume vg01/lv01 changed from 80.00 MiB (20 extents) to 20.00 MiB (5 extents).

  Logical volume vg01/lv01 successfully resized.  缩小成功

    LVM  可以东岱增加,也可以动态缩小,但是xfs   不支持动态缩小,所以我们无法实现基于xfs的动态缩小 ,btrfs  文件系统可以支持在线缩小  

但是文件系统没缩小成功

2)root@xueshen65 ~]# lvs

  LV  VG  Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv01 vg01 -wi-ao---- 20.00m        看到已经缩小了                                              

  lv02 vg01 -wi-a----- 16.00m 

3)  root@xueshen65 ~]# df -h /lv01/

文件系统              容量  已用  可用 已用% 挂载点

/dev/mapper/vg01-lv01  77M  776K  73M    2% /lv01    并没有减小

4)   root@xueshen65 ~]# lvextend -L 10M -r /dev/vg01/lv01    这个命令也不行  

   [root@xueshen65 ~]# resize2fs /dev/vg01/lv01     也不能执行成功


VG  的缩减,要保证你的物理卷是否被使用,是因为它无法缩减一个正在使用的PV

[root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  2  2  0 wz--n-    1.99g  <1.96g

  vg02  1  0  0 wz--n- 1008.00m 1008.00m

[root@xueshen65 ~]# pvs

  PV        VG  Fmt  Attr PSize    PFree 

  /dev/sdb1  vg01 lvm2 a--  1020.00m  984.00m    vg01   中只有sdb3  了

  /dev/sdb2  vg02 lvm2 a--  1008.00m 1008.00m

  /dev/sdb3  vg01 lvm2 a--  1020.00m 1020.00m       

  /dev/sdb4      lvm2 ---    1.00g    1.00g

 复制一下数据  

    [root@xueshen65 ~]# cp -r /boot/grub /lv01/   复制一些测试数据


互动   如果sdb1  是一个磁盘阵列,而这个磁盘阵列使用年代太久,我们必须移除怎么办

  把sdb1  的数据移动到sdb3  

1)[root@xueshen65 ~]# vgreduce vg01 /dev/sdb1   将sdb1  移除失败,因为sdb1  正在使用

  Physical volume "/dev/sdb1" still in use   

2)[root@xueshen65 ~]# pvmove /dev/sdb1 /dev/sdb3

  /dev/sdb1: Moved: 22.22%

  /dev/sdb1: Moved: 55.56%

3)[root@xueshen65 ~]# vgreduce vg01 /dev/sdb1

  Removed "/dev/sdb1" from volume group "vg01


15.2.7   LVM 删除  

创建LVM  流程

pvcreate     pv   ->   vgcreate  创建卷组-》    lvcreate  创建逻辑卷  -    mkfs.xfs lv  格式化,- 》

mount   挂载

删除  LVM  流程:

删除  LVM   流程 

umount   卸载  ->   lvremount   lv  移除逻辑卷->   vgremove  移除卷组  ->   pvremove   移除pv

1)  [root@xueshen65 ~]# umount /lv01/

[root@xueshen65 ~]# vgs

  VG  #PV #LV #SN Attr  VSize    VFree 

  vg01  1  2  0 wz--n- 1020.00m  984.00m

  vg02  1  0  0 wz--n- 1008.00m 1008.00m

2) 

[root@xueshen65 ~]# lvremove /dev/vg01/lv01

Do you really want to remove active logical volume vg01/lv01? [y/n]: y

  Logical volume "lv01" successfully removed

[root@xueshen65 ~]# lvs

  LV  VG  Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv02 vg01 -wi-a----- 16.00m                                                   

3)

  root@xueshen65 ~]# vgremove vg01 

Do you really want to remove volume group "vg01" containing 1 logical volumes? [y/n]: y

Do you really want to remove active logical volume vg01/lv02? [y/n]: y

  Logical volume "lv02" successfully removed

  Volume group "vg01" successfully removed

4)     [root@xueshen65 ~]# vgs

  VG   #PV #LV #SN Attr   VSize    VFree  

  vg02   1   0   0 wz--n- 1008.00m 1008.00m

  5) 

[root@xueshen65 ~]# pvs 

  PV        VG  Fmt  Attr PSize    PFree 

  /dev/sdb1      lvm2 ---    1.00g    1.00g

  /dev/sdb2  vg02 lvm2 a--  1008.00m 1008.00m

  /dev/sdb3      lvm2 ---    1.00g    1.00g

  /dev/sdb4      lvm2 ---    1.00g    1.00g

6) 

[root@xueshen65 ~]# pvremove /dev/sdb1

  Labels on physical volume "/dev/sdb1" successfully wiped.

7)

[root@xueshen65 ~]# pvs

  PV        VG  Fmt  Attr PSize    PFree 

  /dev/sdb2  vg02 lvm2 a--  1008.00m 1008.00m

  /dev/sdb3      lvm2 ---    1.00g    1.00g

  /dev/sdb4      lvm2 ---    1.00g    1.00g

  15.3   实战-使用SSM 工具为公司的邮件服务器可动态扩容的存储池

安装ssm  

1)

     root  ~  #   yum  -y  install system-storage-manager   

SSM   :检查关于可用硬驱和LVM  劵的信息,显示关于现有磁盘存储设备,存储池,LVM  和存储块照的信息  

2   )

 [root@xueshen65 ~]# ssm list dev

------------------------------------------------------------

Device          Free    Used      Total  Pool  Mount point

------------------------------------------------------------

/dev/sda                        20.00 GB                 

/dev/sda1                      200.00 MB        /boot     

/dev/sda2                        10.00 GB        /         

/dev/sda3                        2.00 GB        SWAP     

/dev/sdb                        20.00 GB                 

/dev/sdb1                        1.00 GB                 

/dev/sdb2  1008.00 MB  0.00 KB    1.00 GB  vg02           

/dev/sdb3                        1.00 GB                 

/dev/sdb4                        1.00 GB       

3)  查看池  

[root@xueshen65 ~]# ssm list pool

----------------------------------------------------

Pool  Type  Devices        Free    Used      Total 

----------------------------------------------------

vg02  lvm  1        1008.00 MB  0.00 KB  1008.00 MB 

----------------------------------------------------

4)     查看劵组的信息

[root@xueshen65 ~]# ssm list vol

-------------------------------------------------------------

Volume    Volume size  FS    FS size      Free  Mount point 

-------------------------------------------------------------

/dev/sda1    200.00 MB  xfs  196.66 MB  55.54 MB  /boot       

/dev/sda2    10.00 GB  xfs    9.99 GB  4.83 GB  /           

------------------------------------------------------------

15.3.2   实战  :   为公司的邮件服务器厂家基于LVM   的邮件服务

实战场景:公司要搭建一台服务器,考虑到后期公司规模扩张,需要你创建一个名为mail的LVM 

存储池,并在其创建名为mail-v  初始大小为1G 的LVM  劵,格式化为xfs文件系统,并将其挂载到/mail-lv  目录下,此存储池中的空间后期可以动态扩容

创建目录   

mkdir  /mail-lv  

用的命令如下

ssm  create  -s  lv  大小  -n   lv名称   --fstype    lv  文件系统类型 -p   卷组名  设备   挂载点  

自动把设备变成pv,创建vg   ,lv   格式化文件系统,自动挂载  

1)  首先移除卷组 

2 )

[root@xueshen65 ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv

  Physical volume "/dev/sdb1" successfully created.

  Physical volume "/dev/sdb2" successfully created.

  Physical volume "/dev/sdb3" successfully created.

  Physical volume "/dev/sdb4" successfully created.

  Volume group "mail" successfully created

WARNING: ext4 signature detected on /dev/mail/mail-lv at offset 1080. Wipe it? [y/n]: y

3  )

  [root@xueshen65 ~]# df -h /mail-lv/

文件系统                  容量  已用  可用 已用% 挂载点

/dev/mapper/mail-mail--lv 1014M  33M  982M    4% /mail-lv



你可能感兴趣的:(第十五章 LVM 管理和ssm 存储管理器使用)