unit2.5 使用逻辑卷管理器管理灵活存储

来源:互联网 发布:开淘宝店怎么进货 编辑:程序博客网 时间:2024/05/29 18:05

########################unit2.5#######################

                   使用逻辑卷管理器管理灵活存储

 

 

¥¥¥¥¥¥一,LVM

• 物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完

整磁盘、 RAID 集或 SAN 磁盘

• 物理卷是 LVM 所使用的基础 “ 物理 ” 存储。这通常是块设备 ,

例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 , 才能

LVM 结合使用

• 卷组是存储池 , 由一个或多个物理卷组成

• 物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的

后端

• 逻辑区块映射到物理区块 , 构成 LVM 存储的前端。默认情况

, 每个逻辑区块映射到一个物理区块。启用某些选项将更改

此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块

• 逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用。

 

¥¥¥¥¥¥二,为什么使用逻辑卷?

逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 ,可以将其卷组的可用空间分配给逻辑卷 , 并且可以调整文件系统的大小。如果磁盘开始出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘.

 

 

¥¥¥¥¥¥三,使用命令行工具实施 LVM 存储

1, 准备物理卷

– disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 , 始终将“ 类型 ” 设置为 “ 0x8e Linux LVM”

– pvcreate /dev/vdaN 用于初始化分区 ( 或其他物理设备 ), 使其作为物理卷与 LVM 结合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头

 

2, 创建卷组

– vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷 ( 以空格隔开 ), 也可以随后使用 vgextend 添加新物理卷。

 

3,创建和使用新逻辑卷

– lvcreate -n lvname -L 2G vgname 从 vgname 上可用物理区块创建名为 lvname 、容量为 2GB 的新逻辑卷。

– mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统

– mkdir /data 建立所需目录作为挂载点

– 向 /etc/fstab 文件中添加一下条目:

/dev/mapper/vgname-lvname /data ext4 defaults 1 2

– 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 , 包括您刚刚添加的条目

 

¥¥¥¥¥¥四,具体实例:

 

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

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

 

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

使用写入命令前请三思。

 

 

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

 

磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

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

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

磁盘标签类型:dos

磁盘标识符:0x81c63cb5

 

   设备 Boot      Start         End      Blocks   Id  System

/dev/vdb1            2048     2099199     1048576   8e  Linux LVM

/dev/vdb2         2099200     4196351     1048576   8e  Linux LVM

 

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

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@localhost ~]# partprobe

[root@localhost ~]# pvcreate /dev/vdb1 ##准备物理卷

WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y

  Wiping xfs signature on /dev/vdb1.

  Physical volume "/dev/vdb1" successfully created

[root@localhost ~]# vgcreate vg0 /dev/vdb1  ##创建卷组(由物理卷pv组成的卷组)

  Volume group "vg0" successfully created

[root@localhost ~]# lvcreate -L 300M -n lv0 vg0 ##从vg0上可用物理区块创建名为lv0,容量为300M的新逻辑卷

  Logical volume "lv0" created

[root@localhost ~]# lvcreate -L 300M -n lv1 vg0

  Logical volume "lv1" created

[root@localhost ~]# mkfs.xfs /dev/vg0/lv0  ##格式化/dev/vg0/lv

0

meta-data=/dev/vg0/lv0           isize=256    agcount=4, agsize=19200 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0

data     =                       bsize=4096   blocks=76800, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=853, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/

[root@localhost ~]# ll /dev/mapper/vg0-lv0

lrwxrwxrwx. 1 root root 7 Apr 24 10:14 /dev/mapper/vg0-lv0 -> ../dm-0

[root@localhost ~]# ll /dev/vg0/lv0

lrwxrwxrwx. 1 root root 7 Apr 24 10:14 /dev/vg0/lv0 -> ../dm-0

***************************************************

[root@localhost ~]# mkdir /weixindata/  ##建立所需目录为挂载点

 

 

¥¥¥¥¥¥¥五,扩展逻辑卷和xfs文件系统

1,验证已挂载文件系统 /data 的当前大小

– df -h /data

 

2,验证 “ 可用物理区块 ” 是否够用

– vgdisplay vgname

 

3,使用部分或全部可用区块扩展逻辑卷

– lvextend -l 128 /dev/vgname/lvname

 

4, 扩展在 /data 上挂载的关联文件系统

– xfs_growfs  /dev/vgname/lvname

 

5, 验证已挂载文件系统 /data 的新的大小

– df -h /data

 

 

实例如下:

[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/  ##挂载到/weixindata上,进行使用。

[root@localhost ~]# lvextend -L 800M /dev/vg0/lv0 ##扩展逻辑卷

  Extending logical volume lv0 to 800.00 MiB

  Insufficient free space: 125 extents needed, but only 105 available

*****空间不够,则扩展物理卷,进而再达到扩展逻辑卷

 

[root@localhost ~]# pvcreate /dev/vdb2  ##准备物理卷

  Physical volume /dev/vdb2 not found

  Can't open /dev/vdb2 exclusively.  Mounted filesystem?

@@@@@@由提示,检查前面的操作,如:/dev/md0的是否关闭》

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

mdadm: stopped /dev/md0

[root@localhost ~]# mount /dev/vg0/lv0   /weixindata/ ###挂载后,进行新的物理卷的准备

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

  Physical volume /dev/vdb2 not found

WARNING: linux_raid_member signature detected on /dev/vdb2 at offset 4096. Wipe it? [y/n] y

  Wiping linux_raid_member signature on /dev/vdb2.

  Physical volume "/dev/vdb2" successfully created

 

[root@localhost ~]# vgextend vg0  /dev/vdb2  ##扩展卷组

  Volume group "vg0" successfully extended

[root@localhost ~]# lvextend -L 800M /dev/vg0/lv0 ##扩展逻辑卷

  Extending logical volume lv0 to 800.00 MiB

  Logical volume lv0 successfully resized

[root@localhost ~]# xfs_growfs /dev/vg0/lv0  ##扩展在/weixindata上的关联文件系统

 

meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=4, agsize=19200 blks

         =                       sectsz=512   attr=2,

...........................

 version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 76800 to 204800

 

 

 

¥¥¥¥¥¥六,在新的逻辑卷上创建ext4文件系统

[root@localhost ~]# umount /weixindata/

[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0 ##创建ext4文件系统

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

.......................                  

Writing inode tables: done                            

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

 

 

[root@localhost ~]# e2fsck -f /dev/vg0/lv0

e2fsck 1.42.9 (28-Dec-2013)

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/lv0: 11/51296 files (0.0% non-contiguous), 7726/204800 blocks

[root@localhost ~]# resize2fs /dev/vg0/lv0  300M ##扫描文件系统的大小

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vg0/lv0 to 76800 (4k) blocks.

The filesystem on /dev/vg0/lv0 is now 76800 blocks long.

 

[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/

[root@localhost ~]# lvreduce -L 300 /dev/vg0/lv0 ###将逻辑卷压缩到300M

  WARNING: Reducing active and open logical volume to 300.00 MiB

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

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

  Reducing logical volume lv0 to 300.00 MiB

  Logical volume lv0 successfully resized

 

[root@localhost ~]# pvmove /dev/vdb1  /dev/vdb2 ##将物理卷/dev/vdb1的内容,移动到物理卷/dev/vdb2中

  /dev/vdb1: Moved: 4.0%

  /dev/vdb1: Moved: 50.0%

  /dev/vdb1: Moved: 100.0%

[root@localhost ~]# vgreduce vg0 /dev/vdb1  将/dev/vdb1从卷组vg0中移除掉。

  Removed "/dev/vdb1" from volume group "vg0"

[root@localhost ~]# pvremove /dev/vdb1

  Labels on physical volume "/dev/vdb1" successfully wiped

 

 

 

¥¥¥¥¥¥七,创建和使用快照进行备份

 

目的:   创建快照以便于数据备份

1, 快照逻辑卷是 LVM 存储的另一项灵活功能。LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据

 

2, 快照卷大小只需足以存储在它存在期间更改的数据即可

 

3, 如果数据更改量大于快照存储容量 , 则快照将自动变为不可用。 ( 原始卷原封不动 , 仍然需要从卷组中手动解除挂载和删除不可用的快照。 )

 

**相应的操作:

 

1,创建 /dev/vgname/lvname 的名为 snaplvname 、大小为 20M 的新快照卷

– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname

 

2, 如果备份软件要求 , 请挂载该快照 , 并使备份程序指向新挂载点

– mkdir /snapmount

– mount -o ro /dev/vgname/snaplv /snapmount

 

3, 验证快照逻辑卷的状态

– lvs /dev/vgname/snaplv

 

4,不再使用快照时 , 请解除挂载并删除它

– umount /snapmount

– lvremove /dev/vgname/snaplv

 

实例如下:

[root@localhost ~]# touch /weixindata/file{1..10}  ##建立文件(逻辑卷的明显的数据)

[root@localhost ~]# ls /weixindata/

file1   file2  file4  file6  file8  lost+found

file10  file3  file5  file7  file9

[root@localhost ~]# umount /weixindata/

[root@localhost ~]# ls /weixindata/  ##说明以上文件属于逻辑卷的数据

 

[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0   ##创建快照,大小为50M的lv0backup。

   Rounding up size to full physical extent 52.00 MiB

  Logical volume "lv0backup" created

[root@localhost ~]# mount /dev/vg0/lv0backup  /weixindata/

[root@localhost ~]# ls /weixindata/

file1   file2  file4  file6  file8  lost+found

file10  file3  file5  file7  file9

****删除快照的数据

[root@localhost ~]# cd /weixindata/

[root@localhost weixindata]# rm -fr *

[root@localhost weixindata]# ls

[root@localhost weixindata]# cd

[root@localhost ~]# umount /weixindata/

***重新快照

[root@localhost ~]# lvremove /dev/vg0/lv0backup  ##删除原来的快照

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

  Logical volume "lv0backup" successfully removed

[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0      ##创建新的快照

  Rounding up size to full physical extent 52.00 MiB

  Logical volume "lv0backup" created

[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/

[root@localhost ~]# cd /weixindata/

[root@localhost weixindata]# ls   (新的快照数据仍旧在)

file1   file2  file4  file6  file8  lost+found

file10  file3  file5  file7  file9

********恢复物理分区*******

如下:

[root@localhost weixindata]# cd

[root@localhost ~]# umount /weixindata/

[root@localhost ~]# lvremove /dev/vg0/lv0backup ##删掉快照

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

  Logical volume "lv0backup" successfully removed

 

[root@localhost ~]# lvremove /dev/vg0/lv0  ##删掉逻辑卷

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

  Logical volume "lv0" successfully removed

[root@localhost ~]# vgremove vg0     ##删掉卷组

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

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

  Logical volume "lv1" successfully removed

  Volume group "vg0" successfully removed

[root@localhost ~]# pvremove /dev/vdb2  ##删掉物理卷

  Labels on physical volume "/dev/vdb2" successfully wiped

 

 

监控命令:

[root@localhost ~]# watch -n 1 'echo ====pvmessage===; pvs;echo==vgmessage====;vgs;echo==lvmmessage===;lvs;echo===;df /weixindata'

(如图二)##快照的容量改变,但其指向的卷组容量不变,所以为300M。


 

0 0
原创粉丝点击