PUB:20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV

@GOLinux
This commit is contained in:
wxy 2014-11-23 11:51:55 +08:00
parent e95ffded00
commit 01f749ff65

View File

@ -1,12 +1,14 @@
逻辑卷管理中设置精简资源调配卷——第四部分 LVM中设置精简资源调配卷第四部分
================================================================================ ================================================================================
逻辑卷管理有许多特性比如像快照和精简资源调配。在先前第三部分中我们已经介绍了如何为逻辑卷创建快照。在本文中我们将了解如何在LVM中设置精简资源调配。 逻辑卷管理有许多特性,比如像快照和精简资源调配。在先前([第三部分][3]我们已经介绍了如何为逻辑卷创建快照。在本文中我们将了解如何在LVM中设置精简资源调配。
![Setup Thin Provisioning in LVM](http://www.tecmint.com/wp-content/uploads/2014/08/Setup-Thin-Provisioning-in-LVM.jpg) ![Setup Thin Provisioning in LVM](http://www.tecmint.com/wp-content/uploads/2014/08/Setup-Thin-Provisioning-in-LVM.jpg)
在LVM中设置精简资源调配
*在LVM中设置精简资源调配*
### 精简资源调配是什么? ### ### 精简资源调配是什么? ###
精简资源调配用于lvm以在精简池中创建虚拟磁盘。我们假定我服务器上有**15GB**的存储容量而我已经有2个客户各自占去了5GB存储空间。你是第三个客户你也请求5GB的存储空间。在以前我们会提供整个5GB的空间富卷。然而你可能只使用5GB中的2GB其它3GB以后再去填满它。
精简资源调配用于LVM以在精简池中创建虚拟磁盘。我们假定我服务器上有**15GB**的存储容量而我已经有2个客户各自占去了5GB存储空间。你是第三个客户你也请求5GB的存储空间。在以前我们会提供整个5GB的空间富卷。然而你可能只使用5GB中的2GB其它3GB以后再去填满它。
而在精简资源调配中我们所做的是在其中一个大卷组中定义一个精简池再在精简池中定义一个精简卷。这样不管你写入什么文件它都会保存进去而你的存储空间看上去就是5GB。然而这所有5GB空间不会全部铺满整个硬盘。对其它客户也进行同样的操作就像我说的那儿已经有两个客户你是第三个客户。 而在精简资源调配中我们所做的是在其中一个大卷组中定义一个精简池再在精简池中定义一个精简卷。这样不管你写入什么文件它都会保存进去而你的存储空间看上去就是5GB。然而这所有5GB空间不会全部铺满整个硬盘。对其它客户也进行同样的操作就像我说的那儿已经有两个客户你是第三个客户。
@ -20,15 +22,13 @@
在精简资源调配中如果我为你定义了5GB空间它就不会在定义卷时就将整个磁盘空间全部分配它会根据你的数据写入而增长希望你看懂了跟你一样其它客户也不会使用全部卷所以还是有机会为一个新客户分配5GB空间的这称之为过度资源调配。 在精简资源调配中如果我为你定义了5GB空间它就不会在定义卷时就将整个磁盘空间全部分配它会根据你的数据写入而增长希望你看懂了跟你一样其它客户也不会使用全部卷所以还是有机会为一个新客户分配5GB空间的这称之为过度资源调配。
但是必须对各个卷的增长情况进行监控否则结局会是个灾难。在过度资源调配完成后如果所有4个客户都极度地写入数据到磁盘你将碰到问题了。因为这个动作会填满15GB的存储空间甚至溢出从而导致这些卷下线。 但是必须对各个卷的增长情况进行监控否则结局会是个灾难。在过度资源调配完成后如果所有4个客户都尽量写入数据到磁盘你将碰到问题了。因为这个动作会填满15GB的存储空间甚至溢出从而导致这些卷下线。
### 需求 ### ### 前置阅读 ###
注:此三篇文章如果发布后可换成发布后链接,原文在前几天更新中 - [在Linux中使用LVM构建灵活的磁盘存储第一部分][1]
- [在Linux中扩展/缩减LVM第二部分][2]
- [使用LVM在Linux中创建逻辑卷——第一部分][1] - [在 LVM中 录制逻辑卷快照并恢复(第三部分)][3]
- [在Linux中扩展/缩减LVM——第二部分][2]
- [在LVM中创建/恢复逻辑卷快照——第三部分][3]
#### 我的服务器设置 #### #### 我的服务器设置 ####
@ -42,7 +42,8 @@
# vgcreate -s 32M vg_thin /dev/sdb1 # vgcreate -s 32M vg_thin /dev/sdb1
![Listing Volume Group](http://www.tecmint.com/wp-content/uploads/2014/08/Listing-Volume-Group.jpg) ![Listing Volume Group](http://www.tecmint.com/wp-content/uploads/2014/08/Listing-Volume-Group.jpg)
列出卷组
*列出卷组*
接下来,在创建精简池和精简卷之前,检查逻辑卷有多少空间可用。 接下来,在创建精简池和精简卷之前,检查逻辑卷有多少空间可用。
@ -50,7 +51,8 @@
# lvs # lvs
![Check Logical Volume](http://www.tecmint.com/wp-content/uploads/2014/08/check-Logical-Volume.jpg) ![Check Logical Volume](http://www.tecmint.com/wp-content/uploads/2014/08/check-Logical-Volume.jpg)
检查逻辑卷
*检查逻辑卷*
我们可以在上面的lvs命令输出中看到只显示了一些默认逻辑用于文件系统和交换分区。 我们可以在上面的lvs命令输出中看到只显示了一些默认逻辑用于文件系统和交换分区。
@ -62,18 +64,20 @@
- **-L** 卷组大小 - **-L** 卷组大小
- **thinpool** 创建精简池 - **thinpool** 创建精简池
- **tp_tecmint_poolThin** - 精简池名称 - **tp\_tecmint\_poolThin** - 精简池名称
- **vg_thin** 我们需要创建精简池的卷组名称 - **vg\_thin** 我们需要创建精简池的卷组名称
![Create Thin Pool](http://www.tecmint.com/wp-content/uploads/2014/08/Create-Thin-Pool.jpg) ![Create Thin Pool](http://www.tecmint.com/wp-content/uploads/2014/08/Create-Thin-Pool.jpg)
创建精简池
*创建精简池*
使用lvdisplay命令来查看详细信息。 使用lvdisplay命令来查看详细信息。
# lvdisplay vg_thin/tp_tecmint_pool # lvdisplay vg_thin/tp_tecmint_pool
![Logical Volume Information](http://www.tecmint.com/wp-content/uploads/2014/08/Logical-Volume-Information.jpg) ![Logical Volume Information](http://www.tecmint.com/wp-content/uploads/2014/08/Logical-Volume-Information.jpg)
逻辑卷信息
*逻辑卷信息*
这里,我们还没有在该精简池中创建虚拟精简卷。在图片中,我们可以看到分配的精简池数据为**0.00%**。 这里,我们还没有在该精简池中创建虚拟精简卷。在图片中,我们可以看到分配的精简池数据为**0.00%**。
@ -83,16 +87,17 @@
# lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool # lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool
我已经在我的**vg_thin**卷组中的**tp_tecmint_pool**内创建了一个精简虚拟卷,取名为**thin_vol_client1**。现在,使用下面的命令来列出逻辑卷。 我已经在我的**vg_thin**卷组中的**tp\_tecmint\_pool**内创建了一个精简虚拟卷,取名为**thin\_vol\_client1**。现在,使用下面的命令来列出逻辑卷。
# lvs # lvs
![List Logical Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/List-Logical-Volumes.jpg) ![List Logical Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/List-Logical-Volumes.jpg)
列出逻辑卷
*列出逻辑卷*
刚才,我们已经在上面创建了精简卷,这就是为什么没有数据,显示为**0.00%M**。 刚才,我们已经在上面创建了精简卷,这就是为什么没有数据,显示为**0.00%M**。
好吧让我为其它2个客户再创建2个精简卷。这里你可以看到在精简池**tp_tecmint_pool**下有3个精简卷了。所以从这一点上看我们开始明白我已经使用所有15GB的精简池。 好吧让我为其它2个客户再创建2个精简卷。这里你可以看到在精简池**tp\_tecmint\_pool**下有3个精简卷了。所以从这一点上看我们开始明白我已经使用所有15GB的精简池。
![Create Thin Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/Create-Thin-Volumes.jpg) ![Create Thin Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/Create-Thin-Volumes.jpg)
@ -107,14 +112,16 @@
# ls -l /mnt/ # ls -l /mnt/
![Creating Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Creating-Mount-Points.jpg) ![Creating Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Creating-Mount-Points.jpg)
创建挂载点
*创建挂载点*
使用mkfs命令为这些创建的精简卷创建文件系统。 使用mkfs命令为这些创建的精简卷创建文件系统。
# mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3 # mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3
![Create File System](http://www.tecmint.com/wp-content/uploads/2014/08/Create-File-System.jpg) ![Create File System](http://www.tecmint.com/wp-content/uploads/2014/08/Create-File-System.jpg)
创建文件系统
*创建文件系统*
使用mount命令来挂载所有3个客户卷到创建的挂载点。 使用mount命令来挂载所有3个客户卷到创建的挂载点。
@ -125,12 +132,14 @@
# df -h # df -h
![Print Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Print-Mount-Points.jpg) ![Print Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Print-Mount-Points.jpg)
打印挂载点
*显示挂载点*
这里我们可以看到所有3个客户卷已经挂载了而每个客户卷只使用了3%的数据空间。那么让我们从桌面添加一些文件到这3个挂载点以填充一些空间。 这里我们可以看到所有3个客户卷已经挂载了而每个客户卷只使用了3%的数据空间。那么让我们从桌面添加一些文件到这3个挂载点以填充一些空间。
![Add Files To Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/Add-Files-To-Volumes.jpg) ![Add Files To Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/Add-Files-To-Volumes.jpg)
添加文件到卷
*添加文件到卷*
现在列出挂载点,并查看每个精简卷使用的空间,然后列出精简池来查看池中已使用的大小。 现在列出挂载点,并查看每个精简卷使用的空间,然后列出精简池来查看池中已使用的大小。
@ -138,10 +147,12 @@
# lvdisplay vg_thin/tp_tecmint_pool # lvdisplay vg_thin/tp_tecmint_pool
![Check Mount Point Size](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Mount-Point-Size.jpg) ![Check Mount Point Size](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Mount-Point-Size.jpg)
检查挂载点大小
*检查挂载点大小*
![Check Thin Pool Size](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Thin-Pool-Size.jpg) ![Check Thin Pool Size](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Thin-Pool-Size.jpg)
检查精简池大小
*检查精简池大小*
上面的命令显示了3个挂载点及其使用大小百分比。 上面的命令显示了3个挂载点及其使用大小百分比。
@ -161,18 +172,20 @@
# lvs # lvs
![Create thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Create-thin-Storage.jpg) ![Create thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Create-thin-Storage.jpg)
创建精简存储
*创建精简存储*
在精简池中我只有15GB大小的空间但是我已经在精简池中创建了4个卷其总量达到了20GB。如果4个客户都开始写入数据到他们的卷并将空间填满到那时我们将面对严峻的形势。如果不填满空间那不会有问题。 在精简池中我只有15GB大小的空间但是我已经在精简池中创建了4个卷其总量达到了20GB。如果4个客户都开始写入数据到他们的卷并将空间填满到那时我们将面对严峻的形势。如果不填满空间那不会有问题。
现在,我已经创建在**thin_vol_client4**中创建了文件系统,然后挂载到了**/mnt/client4**下,并且拷贝了一些文件到里头。 现在,我已经创建在**thin\_vol\_client4**中创建了文件系统,然后挂载到了**/mnt/client4**下,并且拷贝了一些文件到里头。
# lvs # lvs
![Verify Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-Thing-Storage.jpg) ![Verify Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-Thing-Storage.jpg)
验证精简存储
我们可以在上面的图片中看到新创建的client 4总计使用空间达到了**89.34%**,而精简池的已用空间达到了**59.19**。如果所有这些用户不在过度对卷写入,那么它就不会溢出,下线。要避免溢出,我们需要扩展精简池大小。 *验证精简存储*
我们可以在上面的图片中看到新创建的client 4总计使用空间达到了**89.34%**,而精简池的已用空间达到了**59.19**。如果所有这些用户不再过度对卷写入,那么它就不会溢出,下线。要避免溢出的话,我们需要扩展精简池大小。
**重要**:精简池只是一个逻辑卷,因此,如果我们需要对其进行扩展,我们可以使用和扩展逻辑卷一样的命令,但我们不能缩减精简池大小。 **重要**:精简池只是一个逻辑卷,因此,如果我们需要对其进行扩展,我们可以使用和扩展逻辑卷一样的命令,但我们不能缩减精简池大小。
@ -183,16 +196,18 @@
# lvextend -L +15G /dev/vg_thin/tp_tecmint_pool # lvextend -L +15G /dev/vg_thin/tp_tecmint_pool
![Extend Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Extend-Thin-Storage.jpg) ![Extend Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Extend-Thin-Storage.jpg)
扩展精简存储
*扩展精简存储*
接下来,列出精简池大小。 接下来,列出精简池大小。
# lvs # lvs
![Verify Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-Thin-Storage.jpg) ![Verify Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-Thin-Storage.jpg)
验证精简存储
前面,我们的**tp_tecmint_pool**大小为15GB而在对第四个精简卷进行过度资源配置后达到了20GB。现在它扩展到了30GB所以我们的过度资源配置又回归常态而精简卷也不会溢出下线了。通过这种方式我们可以添加更多的精简卷到精简池中。 *验证精简存储*
前面,我们的**tp_tecmint_pool**大小为15GB而在对第四个精简卷进行过度资源配置后达到了20GB。现在它扩展到了30GB所以我们的过度资源配置又回归常态而精简卷也不会溢出下线了。通过这种方式我们可以添加更多的精简卷到精简池中。
在本文中,我们已经了解了怎样来使用一个大尺寸的卷组创建一个精简池,以及怎样通过过度资源配置在精简池中创建精简卷和扩着精简池。在下一篇文章中,我们将介绍怎样来移除逻辑卷。 在本文中,我们已经了解了怎样来使用一个大尺寸的卷组创建一个精简池,以及怎样通过过度资源配置在精简池中创建精简卷和扩着精简池。在下一篇文章中,我们将介绍怎样来移除逻辑卷。
@ -202,11 +217,11 @@ via: http://www.tecmint.com/setup-thin-provisioning-volumes-in-lvm/
作者:[Babin Lonston][a] 作者:[Babin Lonston][a]
译者:[GOLinux](https://github.com/GOLinux) 译者:[GOLinux](https://github.com/GOLinux)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/babinlonston/ [a]:http://www.tecmint.com/author/babinlonston/
[1]:http://www.tecmint.com/create-lvm-storage-in-linux/ [1]:http://linux.cn/article-3965-1.html
[2]:http://www.tecmint.com/extend-and-reduce-lvms-in-linux/ [2]:http://linux.cn/article-3974-1.html
[3]:http://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/ [3]:http://linux.cn/article-4145-1.html