一、分析说明
在日常服务器维护中,Linux 系统中的存储设备的管理,直接关系到整个系统的性能问题。包括一些常用的 Web、FTP 配置的服务等。备份和扩展硬盘作为运维管理主要方式,常用的方式有 RAID+LVM 等方式。
本 Chat 中的内容:主要介绍 LVM 技术的硬盘管理
- 一、分析说明
- 二、LVM 技术的相关知识
- 三、LVM 技术硬盘操作过程
- 四、如何删除 LVM 相关操作
二、LVM 技术的相关知识
学习之前,了解一下什么是 LVM(Logical Volume Manager)。
LVM 翻译成中文为逻辑卷管理。就是把若干个硬盘组合添加组合到一个卷组,通过卷组可以实现对硬盘分层架构和布局,实现对硬盘分区的动态调整。
通常我们安装一个 FTP 上传服务器,用 LVM 创建一块硬盘空间,就可以动态地改变硬盘空间,这样就不怕硬盘空间不足的烦恼。
LVM 技术的初衷是为了解决硬盘设备在创建分区后不易修改大小的缺陷而产生,尽管对传统的硬盘进行强制扩容或缩从理论上来讲是可以的,但有可能却造成数据丢失,有道是硬盘有价,数据无价!
三、LVM 技术硬盘操作过程
1. 在日常的运维过程中,我们无法评估每个硬盘分区后的使用情况,这样会导致原先分配的硬盘空间不足。伴随着业务量增加,存放数据库的体积也随之增加,这样导致原有的硬盘分区在使用会出现空间不足。
创建 LVM 之前,来了解一下 LVM 的相关命令介绍。
以下为命令介绍:
更详细说明介绍,可用命令 man command 查看。
2. 部署逻辑卷
以下在虚拟机中操作,服务器系统为 Cent OS 6.4 版本。在真实服务器环境下操作功能类似,如下图虚拟机所示,我们添加 2 块 SCSI 硬盘。
这里我们用 fdisk -l 命令查看一下添加过后的硬盘,如下图所示:
这里我们发现没有添加过的硬盘信息,怎么办呢,有两种办法:一是重启服务器,二是重新刷新一下 SCSI 设备。我们选择不重启系统,刷新 SCSI 设备,我们进入以下目录,输入以下命令:
cd /sys/class/scsi_host
[root@centos4 scsi_host]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@centos4 scsi_host]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@centos4 scsi_host]# echo "- - -" > /sys/class/scsi_host/host2/scan
操作如下图所示:
这时候我们再执行命令:
fdisk -l
如下图所示:
成功找到刚才我们添加的 2 块 SCSI 硬盘。
3. 通过命令使这 2 块硬盘支持 LVM 技术
命令如下:
pvcreate /dev/sdb /dev/sdc
如下图所示:
successfully created 执行成功。
4. 以上 2 块硬盘支持 LVM 技术后,我们要添加一个组,将 2 块 SCSI 硬盘添加到这个 gitchat 组中,其实操作很简单,操作命令如下:
[root@localhost /]# vgcreate gitchat /dev/sdb /dev/sdc
添加成功后,我们可以用以下命令验证一下:
[root@localhost /]# vgdisplay
如下图所示:
5. 组添加成功后,我们来增加一个 400M 的空间出来。
备注:在对逻辑卷进行时有两种计量方式。
- 第一:以容量为单位,所用参数 -L。如:-L 200M,则生成一个 200MB 的逻辑卷。
- 第二:以基本单元个数为单位,所用参数 -l,单元的大小默认为 4MB。如:-l 50,则生成一个 50*4MB=200MB 的逻辑卷。
命令如下:
[root@localhost /]# lvcreate -n vo -l 100 gitchat
[root@localhost /]#> lvdisplay
创建成功后,使用命令 lvdisplay 验证一下。如下图所示:
6. 到这里我们就成功创建了一块 400MB 的硬盘空间,创建成功后,还要做格式化,挂载目录,写入 fstab 文件中,使其重启后生效!
命令如下:
[root@localhost /]# mkfs.ext4 /dev/gitchat/vo
[root@localhost /]# mkdir /www
[root@localhost /]# mount /dev/gitchat/vo /www
[root@localhost /]# df -h
[root@localhost /]# echo "/dev/gitchta/vo /www ext4 defaults 0 0" >>/etc/fstab
如下图所示:
通过以上操作,我们就成功通过 LVM 技术添加了一个 400MB 的文件,挂载到 /www 目录下。
7. 在日常的运维过程,如何扩容和减小硬盘的空间呢。这里通过以下命令实现。
扩容命令如下:
[root@localhost /]# umount /www
[root@localhost /]# df -h
[root@localhost /]# lvextend -L 800M /dev/gitchat/vo
[root@localhost /]# e2fsck -f /dev/gitchat/vo
[root@localhost /]# mount -a
[root@localhost /]# lvdisplay
备注:扩容先要卸载设备或者是挂载点,后用 -L 参数改变容量大小,e2fsck 命令为检查硬盘的完整性,最后用 lvdisplay 命令查看改变后的容量大小。
如下图所示:
减小硬盘空间命令如下:
[root@localhost /]# umount
[root@localhost /]# e2fsck -f /dev/gitchat/vo
[root@localhost /]# resize2fs /dev/gitchat/vo 200M
[root@localhost /]#mount -a
[root@localhost /]df -h
lvdisplay
备注:减小硬盘空间先要卸载设备或者是挂载点,后用 e2fsck 命令检查硬盘的完整性,再用命令 resize2fs 命令修改硬盘空间大小,最后验证用 lvdisplay 命令查看改变后的容量大小。
如下图所示:
通过以上操作,就可以完成 LVM 技术针对硬盘相关的创建、扩容、减小操作。
四、如何删除 LVM 相关操作
在日常运维环境中,如果想要重新部署 LVM 或者不再需要使用时,执行删除操作的时候,依次删除逻辑卷、卷组、物理卷设备,顺序不可颠倒,否则删除不成功。
命令如下:
[root@localhost /]# umount /www
[root@localhost /]# lvremove /dev/gitchat/vo
[root@localhost /]# vgremove gitchat
[root@localhost /]# pvremove /dev/sdb /dev/sdc
pvdisplay
通过以上命令,成功删除 LVM 卷。
如下图所示: