使用 LVM 将腾讯云轻量 100G, 500G 和 1000G 云硬盘合成 1.6TB 分区

本文原载于 https://www.idc.moe/archives/qcloud-LighthouseDisk-LVM-Synthesis.html
  腾讯云 2022 年新春大促,可以分别以 5 元、9.9 元和 19.9 元的价格购买 100GB, 500GB 和 1000GB 的轻量应用服务器用高性能云硬盘。全球主机交流论坛有位 mjj 写了用 mdadm 创建 RAID0 阵列的方法【传送门】,然 RAID0 的风险较大、灵活性不强(扩展与收缩分区困难)等问题并不比 LVM 更适合管理跨设备卷,故在这里简单介绍一下使用 LVM 将三块硬盘合成为一个 1.65TiB 的分区。

购买云硬盘

访问腾讯云 2022 年新春采购页面 https://curl.qcloud.com/LnDqyoqH 拉至下方“加购·专区”的“轻量 数据盘”处选购。

提示:

100GB, 500GB 和 1000GB 三种规格各能仅能买一份,云硬盘地域和可用区不互通,购买前可以先到轻量应用服务器控制台 https://console.cloud.tencent.com/lighthouse/instance/index 查看服务器的地域和可用区。

控制台挂载云硬盘

访问轻量应用服务器-云硬盘控制台 https://console.cloud.tencent.com/lighthouse/cbs/index 逐个挂载硬盘(挂载时选择“到期后不进行任何操作”)

挂载成功后登陆服务器,执行 fdisk -l 即可查看已挂载的磁盘。

root@debian:~# fdisk -l
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfa1ddc9a

Device     Boot    Start      End  Sectors  Size Id Type
/dev/vda1  *        2048 81885183 81883136   39G 83 Linux
/dev/vda2       81887230 83884031  1996802  975M  5 Extended
/dev/vda5       81887232 83884031  1996800  975M 82 Linux swap / Solaris


Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vdc: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vdd: 1000 GiB, 1073741824000 bytes, 2097152000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

其中 /dev/vdb, /dev/vdc/dev/vdd 为新购买的云磁盘。

创建 VG

先安装软件包 lvm2,CentOS 用户执行 yum install -y lvm2,Debian 和 Ubuntu 用户执行 apt install -y lvm2

使用 pvcreate 命令创建 PV

依次执行以下命令:

pvcreate /dev/vdb
pvcreate /dev/vdc
pvcreate /dev/vdd

创建成功的输出如下:

root@debian:~# pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created.
root@debian:~# pvcreate /dev/vdc
  Physical volume "/dev/vdc" successfully created.
root@debian:~# pvcreate /dev/vdd
  Physical volume "/dev/vdd" successfully created.

使用 pvs 命令查看所有的 PV

root@debian:~# pvs
  PV         VG Fmt  Attr PSize    PFree   
  /dev/vdb      lvm2 ---   100.00g  100.00g
  /dev/vdc      lvm2 ---   500.00g  500.00g
  /dev/vdd      lvm2 ---  1000.00g 1000.00g

使用 vgcreate 命令创建 VG

vgcreate main /dev/vdb /dev/vdc /dev/vdd

其中 main 为 VG 名称,可以自定义。

创建成功的输出如下:

root@debian:~# vgcreate main /dev/vdb /dev/vdc /dev/vdd
  Volume group "main" successfully created

使用 vgs 命令查看所有的 VG,使用 vgdisplay 命令查看所有的 VG 的详细信息

root@debian:~# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  main   3   0   0 wz--n- 1.56t 1.56t
root@debian:~# vgdisplay
  --- Volume group ---
  VG Name               main
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               1.56 TiB
  PE Size               4.00 MiB
  Total PE              409597
  Alloc PE / Size       0 / 0   
  Free  PE / Size       409597 / 1.56 TiB
  VG UUID               qX7SUf-tp7w-uiv1-jMPN-sn5Q-DjNC-bBVm35

VG 名称为 main,由 PV /dev/vdb, /dev/vdc/dev/vdd 组成。
  故目前 VG main 的大小为 /dev/vdb, /dev/vdc/dev/vdd 的大小的总和。

创建 LV

使用 lvcreate 命令创建 LV

创建含 409597 个 PE 块,每个 PE 块为 4MiB 的 LV:

lvcreate -l 409597 -n maindisk main

其中 main 为上一步创建的文件系统名称,maindisk 为 LV 名称,可以自定义,409597 为 PE 数量,可以自定义,PE 数量*PE 大小(默认 4MiB)=LV 大小,最大值为上一步显示的 Total PE。填写最大值,即代表使用该 VG 的全部空间 (1.65TiB)。

创建成功的输出如下:

root@debian:~# lvcreate -l 409597 -n maindisk main
WARNING: ext4 signature detected on /dev/main/maindisk at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/main/maindisk.
  Logical volume "maindisk" created.

使用 lvs 命令查看所有的 LV,使用 lvdisplay 命令查看所有的 LV 的详细信息

root@debian:~# lvs
  LV       VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  maindisk main -wi-a----- 1.56t
root@debian:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/main/maindisk
  LV Name                maindisk
  VG Name                main
  LV UUID                wg415F-f14m-khdw-JJ7D-tgSS-pfhL-W91XXf
  LV Write Access        read/write
  LV Creation host, time debian, 2022-02-17 03:56:49 -0500
  LV Status              available
  # open                 0
  LV Size                1.56 TiB
  Current LE             409597
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

格式化 LV

mkfs -t ext4 /dev/main/maindisk

挂载

使用 blkidlsblk -o name,uuid 命令查看各分区 UUID:

root@debian:~# blkid
/dev/vda1: UUID="4e510f36-2c5c-447f-87ba-e2de7b74cc1a" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="fa1ddc9a-01"
/dev/vda5: UUID="c77bfc1e-00ed-44c7-9e91-3f171b248714" TYPE="swap" PARTUUID="fa1ddc9a-05"
/dev/vdb: UUID="as8Wtb-KDmx-nbfC-ptOu-bZa5-xJKX-9pGnQ5" TYPE="LVM2_member"
/dev/vdc: UUID="hcT6j5-ilQ4-FDzp-oarR-slIJ-IUr3-9eKZxn" TYPE="LVM2_member"
/dev/vdd: UUID="p9vC3Y-fsfH-Qcwk-8prK-SSDx-J9L7-fo0jUb" TYPE="LVM2_member"
/dev/sr0: BLOCK_SIZE="2048" UUID="2022-02-17-16-03-44-00" LABEL="config-2" TYPE="iso9660"
/dev/mapper/main-maindisk: UUID="b54e9b1a-2665-41d9-852a-d50fb5f948a7" BLOCK_SIZE="4096" TYPE="ext4"
root@debian:~# lsblk -o name,uuid
NAME            UUID
sr0             2022-02-17-16-03-44-00
vda             
├─vda1          4e510f36-2c5c-447f-87ba-e2de7b74cc1a
├─vda2          
└─vda5          c77bfc1e-00ed-44c7-9e91-3f171b248714
vdb             as8Wtb-KDmx-nbfC-ptOu-bZa5-xJKX-9pGnQ5
└─main-maindisk b54e9b1a-2665-41d9-852a-d50fb5f948a7
vdc             hcT6j5-ilQ4-FDzp-oarR-slIJ-IUr3-9eKZxn
└─main-maindisk b54e9b1a-2665-41d9-852a-d50fb5f948a7
vdd             p9vC3Y-fsfH-Qcwk-8prK-SSDx-J9L7-fo0jUb
└─main-maindisk b54e9b1a-2665-41d9-852a-d50fb5f948a7

新建挂载点空文件夹,例如 /data

mkdir -p /data

编辑 /etc/fstab 文件,在底部加入一行:

UUID=b54e9b1a-2665-41d9-852a-d50fb5f948a7 /data           ext4    errors=remount-ro 0       1

其中,b54e9b1a-2665-41d9-852a-d50fb5f948a7/dev/mapper/main-maindisk 的 UUID,/data 为上一步创建的挂载点,保存之。

执行 mount -a 挂载,并执行 echo $? 查验,若返回 0,则挂载完成。

root@debian:~# mount -a
root@debian:~# echo $?
0
<think>好的,用户现在问的是如何扩大腾讯云服务器只有100G的容量。首先,我需要确认用户的具体情况。可能他们的服务器磁盘空间不足,想要扩容。腾讯云服务器的存储通常分为系统盘数据盘,用户可能只用了默认的100G,现在需要扩大。 接下来,我需要考虑用户可能的场景。用户可能是个人开发者或者企业用户,遇到了存储不足的问题,导致应用无法正常运行,或者数据无法存储。他们的真实需求不仅仅是扩容,还可能包括如何安全地操作,避免数据丢失,以及扩容后的后续步骤,比如分区调整或者文件系统扩展。 用户可能对云服务器的存储结构不太了解,比如系统盘数据盘的区别。他们可能不知道可以通过单独扩容数据盘来增加存储,或者是否需要停机操作。另外,用户可能担心扩容的风险,比如数据丢失或者服务中断,所以需要提供安全操作的步骤。 我需要分步骤回答,首先判断当前磁盘类型,是系统盘还是数据盘。然后介绍不同的扩容方法,比如直接扩容系统盘、新增数据盘,或者使用对象存储扩展。每种方法的适用场景操作步骤都需要详细说明,包括控制台操作、命令行调整分区等。 还要提醒用户注意事项,比如备份数据,选择合适的时间进行操作,避免影响服务。另外,可能需要解释一些专业术语,比如LVM、ext4文件系统等,用用户能理解的语言说明。 最后,可能需要给出实际操作的示例命令,比如使用growpartresize2fs来扩展分区文件系统,这样用户可以直接复制使用。同时,建议用户如果遇到问题,可以联系腾讯云客服或者进行工单咨询,确保他们能得到及时帮助。</think>在腾讯云服务器(CVM)中扩展存储容量,可通过以下 **5种核心方法** 灵活操作,具体选择需根据实际业务场景数据存储需求决定: --- ### **一、判断当前磁盘类型** 执行命令查看磁盘分配情况: ```bash lsblk # 查看块设备(系统盘通常为vda,数据盘为vdb/vdc等) df -h # 查看已挂载分区使用率 ``` --- ### **二、系统盘扩容(默认100G限制)** #### **1. 控制台直接扩容** *适用场景*:系统盘容量不足且需保持原有数据完整 *操作步骤*: 1. 进入 **云服务器控制台** → **实例列表** → 选择目标实例 2. 点击 **更多操作** → **资源调整** → **调整系统盘** 3. 设置新容量(最大支持500GB) → 支付费用 → **重启生效** *注意事项*: - **必须停机操作**(需提前安排业务维护窗口) - 扩容后需通过 `fdisk` 或 `growpart` 工具扩展分区(见第四部分) --- ### **三、新增数据盘(推荐方案)** #### **1. 独立挂载数据盘** *优势*:业务零停机、灵活扩展、数据与系统隔离 *操作流程*: 1. 进入 **云硬盘控制台** → **创建云硬盘**(选择SSD/高性能/HDD类型) 2. 挂载到目标实例 → 登录服务器执行: ```bash sudo mkfs -t ext4 /dev/vdb # 格式化新磁盘(假设设备名为vdb) sudo mkdir /data && sudo mount /dev/vdb /data # 创建挂载点 ``` 3. 设置开机自动挂载: ```bash echo '/dev/vdb /data ext4 defaults 0 0' | sudo tee -a /etc/fstab ``` #### **2. 多盘组合方案** | 组合类型 | 实现方式 | 适用场景 | |----------------|--------------------------|-------------------------| | LVM逻辑卷 | `pvcreate`+`vgcreate` | 动态扩展容量 | | RAID阵列 | `mdadm`创建RAID 0/1/5 | 提升性能或冗余 | | 分布式存储 | Ceph/GlusterFS | 大规模数据存储 | --- ### **四、已存在磁盘扩容操作** #### **1. 扩容后分区调整(以ext4为例)** ```bash # 安装分区工具 sudo apt install cloud-guest-utils # Ubuntu/Debian sudo yum install cloud-utils-growpart # CentOS # 扩展分区 sudo growpart /dev/vda 1 # 扩展vda的第一个分区 # 调整文件系统 sudo resize2fs /dev/vda1 # ext4文件系统 xfs_growfs /dev/vda1 # xfs文件系统 ``` --- ### **五、对象存储扩展(非直接扩容)** *适用场景*:静态文件、备份数据、冷数据存储 *推荐方案*: - **COS标准存储**:高频访问数据 - **COS低频存储**:每月访问少于1次的数据 - **COS归档存储**:半年以上访问一次的数据 *数据迁移命令示例*: ```bash coscmd config -a AKID -s SECRET_KEY -b BUCKET -r REGION coscmd upload -r /local/path /cos/path # 目录同步 ``` --- ### **扩容策略对比表** | 方法 | 最大容量 | 停机需求 | 数据风险 | 成本 | |----------------|----------|---------|---------|-----------| | 系统盘扩容 | 500GB | 需要 | 中 | 低 | | 新增数据盘 | 32TB/盘 | 无需 | 低 | 按需计费 | | 对象存储 | 无上限 | 无需 | 低 | 存储+流量 | --- ### **关键注意事项** 1. **快照备份**:扩容前务必创建磁盘快照(控制台 → 快照) 2. **文件系统兼容**:Windows系统需使用磁盘管理工具扩展卷 3. **性能影响**:单盘容量超过2TB时建议采用RAID或分布式存储 4. **费用计算**:云硬盘费用 = 容量 × 单价 × 使用时长([价格计算器](https://buy.cloud.tencent.com/price/cvm)) 若需进一步技术协助,可通过腾讯云控制台提交工单,提供`实例ID``磁盘信息`获取官方支持。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值