Linux运维养成记-磁盘管理LVM 逻辑卷
目录
- 1.LVM 逻辑卷概述
- 2. 创建 LVM 分区实例
- 3.修改 LVM 分区容量
- 4.删除 LVM 分区
1.LVM 逻辑卷概述
随着企业业务的增加,文件系统负载加大,很可能导致空间不足,用传统的分区方式管理磁盘,得把现有的分区删除,然后重新规划新的存储方案,因此我们需要一种管理机制,可以帮我们动态管理存储,而 LVM 就可以提供这种功能。
LVM(Logical Volume Manager)是基于内核的一种逻辑卷管理器,LVM 适合管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。
下面是关于 LVM的几个概念。
- 物理卷(PV):物理卷是 LVM 的最底层概念,是 LVM 的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。多个逻辑卷可以组合或拆分,实现容量扩充或缩减。LVM 提供的命令可以将分区转化成物理卷,通过组合生成卷组。
- 卷组(VG):卷组时 LVM 逻辑概念上的磁盘设备,通过单个或多个 PV 组合生成的。
- 物理长度(PE):物理长度为 PV 合成 VG 后,所划分的最小存储单元,PE 默认为 4MB。
- 逻辑卷(LV):逻辑卷是 LVM 逻辑意义分区,我们可以指定从卷组中分多少容量来创建逻辑卷,最后将此逻辑卷挂载使用。
下面是逻辑卷分区的一些命令解释:
- pvcreate
描述:使用 LVM 对磁盘或分区进行初始化。
用法:pvcreate [选项] 物理卷 [物理卷…]
例:
pvcreate /dev/sdc2 /dev/sde
pvcreate /dev/sdb{1,2,3}
- vgcreate
描述:创建卷组。
用法:vgcreate [选项] 卷组名 物理设备路径 [物理设备路径…]
例:
vgcreate test_vg1 /dev/sdb1 /dev/sdb2
vgcreate test_vg2 -s 16M /dev/sdb3 /dev/sdb4
#-s表示指定 PE 大小为 16MB
- lvcreate
描述:从卷组中提取存储空间,创建逻辑卷。
用法:lvcreate [选项] 卷组名或路径 [物理卷路径]
选项: - -l:指定使用多少个卷组中的 PE 创建逻辑卷,PE 容量在创建卷组时已定
- -L:直接指定逻辑卷容量大小
- -n:指定逻辑卷名
例:
lvcreate -L 2G -n test_lv1 test_vg1
#从卷组 test_vg1 中取 2G 创建名为 test_lv1 的逻辑卷lvcreate -l 200 -n test_lv2 test_vg2
#使用 200 个 PE 创建名为 test_lv2 的逻辑卷lvcreate -L 2G -n test_lv3 test_vg1 /dev/sdb2
#指定 test_lv3 这个逻辑卷使用 test_vg1 下的/dev/sdb2创建
2. 创建 LVM 分区实例
使用之前 sdb 这块磁盘创建两个分区,用这两个创建一个名为 test_vg 的卷组,最后从卷组中创建两个大小为 1G 的逻辑卷,名为 test_web、test_data。
- 使用 fdiask 创建分区
[root@localhost ~]# fdisk -l
...Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb2 263 1305 8377897+ 5 Extended
#这里已有一个主分区和一个扩展分区,下面将扩展分区创建一个逻辑分区,并修改分区标签LVM
Command (m for help): n
Command actionl logical (5 or over)p primary partition (1-4)
l #l 创建逻辑分区
First cylinder (263-1305, default 263):
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-1305, default 1305):+2G
#穿件 sdb5 逻辑分区大小为2GCommand (m for help): t
Partition number (1-5): 5 #指定分区编号sdb5
Hex code (type L to list codes): 8e #改变分区 id 为 LVM
Changed system type of partition 5 to 8e (Linux LVM)Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb2 263 1305 8377897+ 5 Extended
/dev/sdb5 263 524 2104483+ 8e Linux LVMCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.partprobe /dev/sdb
- 用
pvcreate
创建物理卷并使用pvdisplay
查看结果
[root@localhost ~]# pvcreate /dev/sdb{1,5}Physical volume "/dev/sdb1" successfully createdPhysical volume "/dev/sdb5" successfully created[root@localhost ~]# pvdisplay"/dev/sdb1" is a new physical volume of "2.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb1VG Name PV Size 2.01 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID GVq0p6-LA0y-zsVA-NAK4-wyan-qB74-0ajhqM"/dev/sdb5" is a new physical volume of "2.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb5VG Name PV Size 2.01 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID RU8NUI-1gkC-gaMW-ubHp-LDAz-8xS4-6nbO9J
- 使用
vgcreate
创建卷组并使用vgdisplay
查看结果
[root@localhost ~]# vgcreate test_vg /dev/sdb{1,5}Volume group "test_vg" successfully created[root@localhost ~]# vgdisplay--- Volume group ---VG Name test_vgSystem ID Format lvm2Metadata Areas 2Metadata Sequence No 1VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 2Act PV 2VG Size 4.01 GiB #卷组大小PE Size 4.00 MiB #PE 大小Total PE 1026Alloc PE / Size 0 / 0 Free PE / Size 1026 / 4.01 GiBVG UUID vVhxaV-sX5z-52Sd-vj9N-8jre-CaXZ-gXeFM6
- 使用
lvcreate
创建逻辑卷,lvdisplay
查看结果
[root@localhost ~]# lvcreate -n test_web -L 1G test_vgLogical volume "test_web" created[root@localhost ~]# lvcreate -n test_data -L 1G test_vgLogical volume "test_data" created[root@localhost ~]# lvdisplay--- Logical volume ---LV Path /dev/test_vg/test_webLV Name test_webVG Name test_vgLV UUID Y2B4Eh-fraF-1Szh-1gov-kyCc-vUMi-1ks8czLV Write Access read/writeLV Creation host, time localhost.localdomain, 2019-06-13 07:28:27 -0700LV Status available# open 0LV Size 1.00 GiBCurrent LE 256Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0--- Logical volume ---LV Path /dev/test_vg/test_dataLV Name test_dataVG Name test_vgLV UUID NIF17d-8Hy0-er6o-Eaus-efks-1xS7-XMlXkJLV Write Access read/writeLV Creation host, time localhost.localdomain, 2019-06-13 07:28:41 -0700LV Status available# open 0LV Size 1.00 GiBCurrent LE 256Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:1
- 格式化并挂载
[root@localhost ~]# mkfs.ext4 /dev/test_vg/test_web
[root@localhost ~]# mkfs.ext4 /dev/test_vg/test_data
[root@localhost ~]# mkdir -p /test/{web,data}
[root@localhost ~]# cat >> /etc/fstab <<EOF
> /dev/test_vg/test_web /test/web/ ext4 defaults 0 0
> /dev/test_vg/test_data /test/data/ ext4 defaults 0 0
> EOF
[root@localhost test]# mount -a
[root@localhost test]# df -h #查看挂载结果
3.修改 LVM 分区容量
下面使用lvextend
命令调整逻辑卷大小。调整后使用ext4_growfs
命令更新文件系统大小,方法如下:
[root@localhost test]# lvextend -L +1G /dev/test_vg/test_data Extending logical volume test_data to 2.00 GiBLogical volume test_data successfully resized[root@localhost test]# lvsLV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Converttest_data test_vg -wi-ao---- 2.00g test_web test_vg -wi-ao---- 1.00g [root@localhost test]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.9G 14G 18% /
tmpfs 491M 80K 491M 1% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/mapper/test_vg-test_web 1008M 34M 924M 4% /test/web
/dev/mapper/test_vg-test_data 1008M 34M 924M 4% /test/data
#这里系统文件大小还未变化[root@localhost test]# resize2fs /dev/test_vg/test_data
#调整文件系统大小,使之生效
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/test_vg/test_data is mounted on /test/data; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/test_vg/test_data to 524288 (4k) blocks.
The filesystem on /dev/test_vg/test_data is now 524288 blocks long.[root@localhost test]# df -h #查看结果
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.9G 14G 18% /
tmpfs 491M 80K 491M 1% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/mapper/test_vg-test_web 1008M 34M 924M 4% /test/web
/dev/mapper/test_vg-test_data 2.0G 34M 1.9G 2% /test/data
此外当卷组没有足够空间时,可以再加磁盘然后fdisk
分区,将新分区做成物理卷,然后通过vgextend
将新的物理卷追加至现有的卷组中,最后lvextend
调整逻辑卷大小,以下演示追加新的物理卷至已有卷组中。
fdisk /dev/sdb #分新区
pvcreate /dev/sdb6 #将分区做成物理卷 PV
vgextend test_vg /dev/sdb6 #将新的 PV 加到 test_vg 卷中
vgdisplay test_vg #查看结果
lvextend -L 2G /dev/test_vg/test_data #将逻辑卷扩充2G
resize2fs /dev/test_vg/test_data #调整文件大小,使之生效
df -h #查看结果
4.删除 LVM 分区
删除 LVM 分区的顺序与创建时相反,即先卸载文件系统、删除逻辑卷、删卷组,删物理卷。下载文件系统时应更新/etc/fstab
文件。
下面是删除 LVM 分区命令,步骤:
umount /dev/test_vg/test_web
umount /dev/test_vg/test_data
lvremove /dev/test_vg/test_web
lvremove /dev/test_vg/test_data
vgremove /dev/test_vg
pvremove /dev/sdb{1,5,6}
Linux运维养成记-磁盘管理LVM 逻辑卷相关推荐
- linux创建运维账户流程,Linux运维养成记-账户与权限管理
1. Linux 账户及组的概念 Linux 系统是通过用户的 ID 来识别每个账号,默认 ID 长度为 32 位,从 0 开始,用户的 ID及 UID 限制在 60000 以下,其中 Linux 账 ...
- Linux运维养成记-服务器安全运维
目录 1. 删除特殊用户和用户组 2. 关闭系统不需要的服务 3. 合理使用 sudo 命令 4. 删减系统登录信息 5. ssh远程登录安全 6. 合理利用 history 7. 防火墙 7.1 i ...
- linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]
文章目录 1. 磁盘的外部结构 2.磁盘的内部结构 3. 计算一个磁盘的大小 1. 磁盘的外部结构 我们首先查看一个磁盘的结构,然后我们来进行一一的解读: 磁盘的主轴:决定磁盘的转速,转的越快,就会效 ...
- linux运维基础[系统磁盘管理]——————存储设备的识别、df、du、fsck
文章目录 1. 本地存储设备的识别 1.1 fdisk -l 1.2 cat /proc/partition 1.3 blkid 1.4 df 2.文件系统常用命令 2.1 df 2.1.1 -h 2 ...
- linux虚拟磁盘管理pe大小6,Linux下磁盘的高级管理——LVM逻辑卷管理
文章目录 逻辑卷是什么 逻辑卷的原理 逻辑卷的优点 lv的管理 lv的建立 xfs格式下lvm的拉伸 ext4下lvm的拉伸和缩减 lvm快照 lvm快照的原理和作用 快照的建立 lvm的删除 逻辑卷 ...
- Linux如何查看LV的容量情况,LVM 逻辑卷管理器-增大LV容量
LVM 逻辑卷管理器-增大LV的容量 步骤: (1)新增一个8e systemID的分区: (2)用pvcreate命令构建PV: (3)用vgextend命令将PV加入vg_1: (4)用lvres ...
- 磁盘管理之逻辑卷管理(Logical Volume Manager)
LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. LVM将存储 ...
- Linux运维篇之进程管理②
一.HUP信号 当用户注销(logout)或者网络断开或者关闭终端时(一定是终端整体关闭,而不是单纯的exit)时,终端会收到Linux HUP信号,然后终端在结束前会关闭所有子进程. 如果我们想让进 ...
- Linux运维:查看磁盘空间的大小
文章目录 使用df命令 查看磁盘剩余空间 查看每个根路径的分区大小 使用dh命令 查看某个目录的大小 查看该文件夹总MB数 查看指定文件夹下的所有文件大小(包含子文件夹) 查看指定文件大小及其子目录文 ...
- Android逻辑卷管理LVM,LINUX——LVM逻辑卷管理
LVM: logical volumes manager LVM逻辑卷部署 物理卷->卷组->逻辑卷 第一步:关机添加磁盘:两个磁盘可以构成一个磁盘组. 第二步:查看磁盘 # ls /de ...
最新文章
- Linux系统下查看目录大小
- C++多态,虚函数,纯虚函数
- Spark编程指南V1.4.0(翻译)
- perl6正则 4: before / after 代码断言: ?{} / !{}
- COJ1196(Staginner 去爬山)
- html file 隐藏,input type=file /浏览时只显示指定文件类型(html5新特性)
- netback于kthread遇到cpu affinity问题
- 面向过程编程与面向对象编程
- 【月伴流星】Win7 SP1_x86/x64_2018.03多合一安装版
- C语言/C++基础之奔跑的小人
- 怎么用软件测试相似相似度,文档相似性检测工具
- 毕业实习感想—软件测试
- Python爬取豆瓣各类电影排行榜
- 华为云服务器怎么备份文件,云服务器系统如何备份文件
- 笔记本电脑wifi连接网络不能上网有感叹号
- 图片+css实现波浪
- 看到大神移植系统了,我来整理下市面上的系统...
- AIMP3音乐播放器的漂亮皮肤-IAMP和Minimal Gray
- 深入浅出pytorch笔记——第一章
- apache中配置404错误页的方法