记一次阿里云LVM扩容与 LVM 相关知识学习
一、lvm 扩容

问题: 我们阿里云服务器有一个磁盘容量为 1T ,但是最近由于业务的扩增,磁盘容量已经不够了,需要增大磁盘的容量。磁盘挂载在 /home,使用的是 LVM。我们现在需要对磁盘进行扩容。
- 通过增加新的磁盘,然后将磁盘添加到卷组(VG),然后再将逻辑卷(LV)扩容。
- 扩容原有的磁盘。然后再将逻辑卷(LV)扩容。
1.1、方式一(增加新的磁盘)
增加新的磁盘和 原有硬盘做了分区基本一致。
实际操作
# 我们增加了一块硬盘,/dev/vdc
# 创建分区
[root@djx ~]# fdisk /dev/vdc
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xd9ed71fb.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-1824522239, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1824522239, default 1824522239):
Using default value 1824522239
Partition 1 of type Linux and of size 870 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# 将磁盘加入到 VG卷组。
[root@djx ~]# vgextend sdr_vg /dev/vdc1
Physical volume "/dev/vdc1" successfully created.
Volume group "sdr_vg" successfully extended
# 扩容逻辑卷 /dev/sdr_vg/lv_data,-l 指定的是PE数量 -L +800GB
[root@djx ~]# lvextend -l +222719 /dev/sdr_vg/lv_data
Size of logical volume sdr_vg/lv_data changed from <1024.00 GiB (262143 extents) to <1.85 TiB (484862 extents).
Logical volume sdr_vg/lv_data successfully resized.
# 修改文件系统的大小,xfs 文件系统使用xfs_growfs。
[root@djx ~]# xfs_growfs /dev/sdr_vg/lv_data
meta-data=/dev/mapper/sdr_vg-lv_data isize=512 agcount=4, agsize=67108608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=268434432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=131071, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 268434432 to 496498688
# 查看磁盘是否扩容了。
[root@djx ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 5.6G 32G 15% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 12K 16G 1% /dev/shm
tmpfs 16G 540K 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/sdr_vg-lv_data 1.9T 965G 929G 51% /home
tmpfs 3.2G 0 3.2G 0% /run/user/1007
1.2、方式二(扩容原有的磁盘)
原有硬盘做了分区
假设原有的磁盘为 /dev/xdc ,已有分区 /dev/xdc1,我们对磁盘 /dev/xdc 扩容了。
fdisk /dev/xdc # 依次输入 n --》 p --> 默认 --》 默认 --》 w 这样就将新加的磁盘空间到一个新的分区/dev/xdc2,
# 我们将该分区加入到卷组。
vgextend 卷组的名称 /dev/xdc2
vgdisplay # 查看卷组的空闲空间。
# 将扩容的空间添加到逻辑卷
lvextend -l +2558 /dev/vg_test/lv_test # -l 指定的是PE数,我们可以使用 -L 来指定实际容量。 lvextend -L +9.99G /dev/vg_test/lv_test
# 修改文件系统的大小
## ext* 使用的命令
resize2fs /dev/vg_test/lv_test
## xfs 使用的命令
xfs_growfs /dev/vg_test/lv_test
原有硬盘未做分区
我们在阿里云选择磁盘扩容,并选择在线扩容(限制条件见阿里云官网文档)。扩容好了,我们可以在服务端进行使用 fidisk -l 查看,我们可以发现磁盘已经变大了。但是我们的物理卷没有变化。
# pv 物理卷扩容后重新识别大小。
pvresize /dev/xdb
pvdisplay # 在 Free PE 就可以查看到我们的新增加的空间大小
# 将扩容的空间添加到逻辑卷
lvextend -l +2558 /dev/vg_test/lv_test # -l 指定的是PE数,我们可以使用 -L 来指定实际容量。 lvextend -L +9.99G /dev/vg_test/lv_test
# 修改文件系统的大小
## ext* 使用的命令
resize2fs /dev/vg_test/lv_test
## xfs 使用的命令
xfs_growfs /dev/vg_test/lv_test
二、扩展
LVM 的常用命令
待补充
LVM 的扩展限制
- 磁盘LV大小限制
- PE 数量限制
本部分内容来自 lvm 扩展限制 :https://www.cnblogs.com/kerrycode/p/8662780.html
创建VG时, LVM卷组(VG)的物理扩展单元(Physical Extends 缩写PE)大小是固定的, 在Linux命令行中,vgcreate 命令的选项-s表示显式设置卷组(VG)上物理卷(PV)上PE的大小。
如果你没有明确设置PE的大小的话,PE大小默认为4MB,但是,一旦这个值设定了,如果不重建VG的话, PE大小是无法修改的。这将涉及逻辑卷上的数据备份和数据恢复。
就目前的LVM2而言 - LVM版本号 2.02.06(2006-05-12),库版本为1.02.07(2006-05-11),驱动程序版本4.5.0 - 没有LVM命令或工具,甚至在HPUX中使用vgmodify,也无法动态或在线模式下调整或更改现有VG的LVM PE大小!
因此,建议在创建LVM卷组之前正确计划,例如,如果逻辑卷存储的数据很有可能在不久的将来超过300G大小的话, 那么你在创建VG的时候,就不能设定PE大小为4MB。
为了限制Linux内核内存使用量,每个逻辑卷(LV)有65,536个物理盘区(PE)的限制。因此,LVM中PE大小将直接决定逻辑卷(LV)的最大大小!例如,4MB PE大小(默认PE大小)将单个逻辑卷(LV)限制为256GB,16MB PE大小将限制单个LV增长超过1TB,等等。
除PE大小因素外,单个LV的最大尺寸也受CPU架构和Linux内核版本的限制:
Linux内核版本2.4.x将最大LV大小限制为2TB。
在2.4.x之前的一些较早的Linux内核中,最大LV大小限制为1TB(由块层中的整数签名问题引起 caused by the integer signedness problems in the block layer)。
32位CPU和Linux内核版本2.6.x的组合,逻辑卷大小的限制在16TB时最大化。
对于在64位CPU上运行的Linux内核2.6.x,最大LV大小为8EB(此时非常恐怖的大容量存储!)
翻译完成,下面是我Google搜索到关于内核版本和CPU架构对逻辑卷的大小限制的描述资料。仅供参考。
· For 2.4 based kernels, the maximum LV size is 2TB. For some older kernels, however, the limit was 1TB due to signedness problems in the block layer. Red Hat Enterprise Linux 3 Update 5 has fixes to allow the full 2TB LVs. Consult your distribution for more information in this regard.
·
· For 32-bit CPUs on 2.6 kernels, the maximum LV size is 16TB.
·
· For 64-bit CPUs on 2.6 kernels, the maximum LV size is 8EB. (Yes, that is a very large number.)
有一次创建了一个LV超过265G,但是PE Size为4M,这个让我非常困惑,后面查了一下资料发现,以前有每个逻辑卷(LV)有65,536个物理盘区(PE)的限制,但是从LVM 2开始,没有限制PE的数量。
Those limits (65536 LE per LV) does not apply to LVM 2 and 2.6 kernel.
Your LV can have much more LE (I dont know if there is even reachable
limit for this). One and only feedback (if you can notice this) is
that userspace programs for managing LVM works _little_ slower, when
there is enormous number od LE to administrate.
I tested it with 4GB LV on 16MB LE (but I didnt see difference)
我在上面进行扩容的时候,一直担心有限制,但是在实际操作的时候是没有发现限制的,因为我的内核版本也是比较新的,lvm 版本也是大的。
记一次阿里云LVM扩容与 LVM 相关知识学习的更多相关文章
- 阿里云CentOS7服务器利用LVM分区挂载磁盘全记录
1.进入服务器后,首先利用fdisk -l来观察磁盘信息,可以看出红线标注处,有两块硬盘信息,分别是40G和300G 2.同时你也可以观察到分区信息,40G的硬盘已经分了一个区vda1,大小(Bloc ...
- 记一次阿里云Linux服务器安装.net core sdk的问题以及解决方法
因为公司领导要求新的项目能跨平台部署,也就是说能部署到Linux服务器上,故新的项目采用了Asp.net mvc core 1.1 进行开发.开发过程一切都比较顺利,然后在之前申请试用的一台微软Azu ...
- 【转载】网站服务器运维记实:阿里云1核2G突发性能t5服务器突然变得卡顿
阿里云突发性能服务器1核2G的t5服务器在高资源利用率的情况下运行一段时间后,发现服务器反应变得很慢,通过windows远程桌面连接上服务器后查看到CPU性能一直在90%到100%之间,无法降下来.前 ...
- 记一次阿里云ECS服务器图片资源迁移至 阿里云 oss
系统用户上传的图片资源放在ECS服务器,图片要做cdn加速,图片量越来越大(第一年200G,还在用户再增加图片量疯狂增长)备份是个问题. 决定迁移至 oss.前端直接上传oss 后台做签名,回调入库图 ...
- 记一次阿里云服务器被用作DDOS攻击肉鸡
事件描述:阿里云报警 ——检测该异常事件意味着您服务器上开启了"Chargen/DNS/NTP/SNMP/SSDP"这些UDP端口服务,黑客通过向该ECS发送伪造源IP和源端口的恶 ...
- 记一次阿里云linux病毒清理过程
1.起因 因为这台服务器是我们公司内部开发服务器,几乎每个人都有root密码.在两天前突然有同事反馈说偶尔会有ssh连不上,git代码无法提交的问题,刚开始也没有在意,以为是阿里云服务器网络波动的 ...
- 记一次阿里云oss文件上传服务假死
引言 记得以前刚开始学习web项目的时候,经常涉及到需要上传图片啥的,那时候都是把图片上传到当前项目文件夹下面,每次项目一重启图片就丢了.虽然可以通过修改/tomcat/conf/server.xml ...
- 阿里云esc 登录时的相关提示
1. 如果该ecs 未绑定密钥对,可以通过常规的用户名密码登录 2. 如果该 ecs 绑定了密钥对,则需要通过私钥进行登录 3. 如果使用 比如 securityCRT 登录时报 " A p ...
- 部署flask到阿里云服务器ECS
比较难的一点是:部署到云服务器上之后,通过公网没法访问. 这就要说回道 本地开发时的一个小细节:通过http://127.0.0.1:5000是可以访问的,但通过http://[本地ip]:5000是 ...
随机推荐
- win10 配置g++环境
一.配置g++编译器的环境 1.将g++编译器的位置添加到环境变量path中,安装了C++ IDE的可以在IDE的安装目录下寻找 例如:C:\MySoftware\dev\Dev-Cpp\MinGW6 ...
- git之github推送篇
1.创建项目 2.生成ssh密钥并设置到github 在文件夹里面右键打开git命令行,输入下面命令,然后一直回车. ssh-keygen -t rsa 生成位置在当前用户的.ssh文件夹里,带pu ...
- 基于python的二分搜索和例题
二分搜索 二分概念 二分搜索是一种在有序数组中查找某一特定元素的搜索算法. 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束: 如果某一特定元素大于或者小于中间元素,则在数 ...
- 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(二)
开心一刻 一头母牛在吃草,突然一头公牛从远处狂奔而来说:“快跑啊!!楼主来了!” 母牛说:“楼主来了关我屁事啊?” 公牛急忙说:“楼主吹牛逼呀!” 母牛大惊,拔腿就跑,边跑边问:“你是公牛你怕什么啊? ...
- 【软件】Gimp内容识别填充开启工具1.0
*源文件起初存于Gimp-Registry,后因服务器维护成本问题,Gimp将原服务器中所有文件迁移至GimpGithub *博主只是将原插件中的内容识别填充功能进行打包处理,方便大家一键启用. 下载 ...
- oracle数据库创建实例
数据库已经安装完成,可以正常登陆查看用户等操作 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sys用户具有“SYSDBA”或者“ ...
- 洛谷$P3226\ [HNOI2012]$集合选数 状压$dp$
正解:$dp$ 解题报告: 传送门$QwQ$ 考虑列一个横坐标为比值为2的等比数列,纵坐标为比值为3的等比数列的表格.发现每个数要选就等价于它的上下左右不能选. 于是就是个状压$dp$板子了$QwQ$ ...
- Docker Swarm Mode 入门实践
本文来源 翻译并总结官方文档,添加自定义示例,参考自Docker 19.03版本官方文档 未来可能归档为:https://docs.docker.com/v19.03/ 2020.01.03为http ...
- 一文详解滑动平均法、滑动平均模型法(Moving average,MA)
任何关于算法.编程.AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI.算法.编程和大数据知识分享,以及免费的SSR节点和 ...
- JVM探秘:内存分配与回收策略
本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. 内存分配一般关注的是对象在堆上分配的情况,对象主要分配在新生代的Eden区中,如果启用 ...