记一次阿里云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是 ...
随机推荐
- 将 Sidecar 容器带入新的阶段
作者 | 徐迪.张晓宇 导读:本文根据徐迪和张晓宇在 KubeCon NA 2019 大会分享整理.分享将会从以下几个方面进行切入:首先会简单介绍一下什么是 Sidecar 容器:其次,会分享几个阿里 ...
- $Noip2013/Luogu1967$ 货车运输 最大生成树+倍增$lca$
$Luogu$ $Sol$ 首先当然是构建一棵最大生成树,然后对于一辆货车的起点和终点倍增跑$lca$更新答案就好.记得预处理倍增的时候不仅要处理走了$2^i$步后是那个点,还有这中间经过的路径权值的 ...
- Word List 1 part 1
inter- 在....之间 intermediate adj. 中间的 pro- 向前,在前;很多;赞同;亲... proportion n. 比例;部分 prim- 第一,主要的 prime ad ...
- 使用EF操作Docker中的Mysql实例
为啥我会选择mysql呢?因为我的服务器配置较低,而SqlServer在docker中的实例,服务器的运行内存应当保持在2G+,我没有这个条件,它会爆出这样的错误 sqlservr: This pro ...
- 「CF242E」XOR on Segment 解题报告
题面 长度为\(n\)的数列,现有两种操作: 1.区间异或操作 2.区间求和操作 对于每个查询,输出答案 思路: 线段树+二进制拆位 线段树区间修改一般使用的都是懒标记的方法,但是对于异或,懒标记的方 ...
- 浅谈 OpenGL 中相关阻塞问题
昨天我遇到一个问题,问题如下: 我使用了延迟渲染,我的渲染流程是:Pass1 --> CUDA并行计算 -->Pass2 CUDA并行计算中需要使用Pass1渲染生成的两张纹理,然而我在G ...
- linux防火墙之iptables
linux防火墙之iptables 1.1.1 关于iptables简介 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 ...
- Java截图小程序源码
Java编写的全屏截图小程序 package cnom.test.testUtils; import java.awt.AWTException; import java.awt.Dimension; ...
- 【转】ArcGIS Server 10.1 动态图层
ArcGISServer将GIS资源以服务的方式发布,能够让更多的人在Web上浏览.使用.不过,诸如气象.环保等方面的信息是实时变化的,按照之前常规的方法,我们先要将最新获得的信息组织成地图文档后再对 ...
- ip转十进制(PHP、MySQL)
mysql与php中都提供了IP转换十进制数函数 1. IP 由点分格式,转换为数字格式,代码如下: mysql> select inet_aton('127.0.0.1'); +------- ...