暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

cloudpods创建虚拟机后磁盘挂载

100

一、挂载数据盘

(1)Cloudpods 控制台操作**

在 Cloudpods 管理界面中,找到目标虚拟机 → 磁盘管理 → 确认磁盘已挂载(状态为 “已挂载”)。

(2)查看系统识别的磁盘

(新挂载的磁盘通常为 dev/vdb、/dev/vdc 等)

lsblk 
fdisk -l

lsblk的输出如下

NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                8:0    0  100G  0 disk
├─sda1             8:1    0    2M  0 part
├─sda2             8:2    0  100M  0 part efi
│                                         boot/efi
├─sda3             8:3    0 1000M  0 part boot
└─sda4             8:4    0  8.9G  0 part
  └─rocky-lvroot 253:0    0  8.8G  0 lvm  /
sdb                8:16   0  500G  0 disk
sr0               11:0    1 1024M  0 rom

根据lsblk的输出,可以看出系统已识别到新磁盘 /dev/sdb
(500GB),但尚未分区或挂载。以下是在这块磁盘上创建逻辑卷并挂载的完整步骤。

(3)创建逻辑卷并挂载

1. 创建物理卷

# 在 dev/sdb 上创建物理卷
pvcreate dev/sdb

# 验证
pvs
# 输出应显示:
# PV         VG     Fmt  Attr PSize   PFree  
# dev/sdb         lvm2 ---  500.00g 500.00g

2、创建卷组(VG)**

# 创建名为 vg_data 的卷组,包含 dev/sdb
vgcreate vg_data dev/sdb

# 验证
vgs
# 输出应显示:
# VG     #PV #LV #SN Attr   VSize   VFree  
# vg_data   1   0   0 wz--n- 500.00g 500.00g

3、创建逻辑卷(LV)

# 创建名为 lv_data 的逻辑卷,使用全部空间
lvcreate -l 100%VG -n lv_data vg_data

# 验证
lvs
# 输出应显示:
# LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
# lv_data vg_data -wi-a----- 500.00g

4、格式化文件系统

# 格式化为 XFS(推荐用于大容量存储) 
mkfs.xfs dev/vg_data/lv_data 

# 或格式化为 ext4(兼容性更好) 
mkfs.ext4 dev/vg_data/lv_data

5、挂载并设置自动挂载

# 创建挂载点 
mkdir data 

# 临时挂载 
mount dev/vg_data/lv_data data 

# 获取 UUID(用于 fstab 配置) 
blkid dev/vg_data/lv_data 
# 输出示例: # dev/vg_data/lv_data: UUID="xxxx-xxxx" TYPE="xfs" 

# 编辑 etc/fstab,添加自动挂载配置 

echo'UUID=xxxx-xxxx data xfs defaults 0 0' >> etc/fstab 

# 验证挂载 df -hT 
# 输出应显示: # dev/mapper/vg_data-lv_data xfs 500G 33M 500G 1% data

6、验证lvm配置

# 查看完整 LVM 配置 
lvs
vgs
pvs

二、扩展系统盘


NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                 8:0    0  100G  0 disk
├─sda1              8:1    0    2M  0 part
├─sda2              8:2    0  100M  0 part efi
│                                          /boot/efi
├─sda3              8:3    0 1000M  0 part boot
└─sda4              8:4    0  8.9G  0 part
  └─rocky-lvroot  253:0    0  8.8G  0 lvm  /

当前的 sda
 磁盘还有未分区的空间(总容量 100G,已分配约10G左右),现在的目标是 把剩余的空间分配给根目录 /
 所对应的 **LVM 卷 rocky-lvroot
**。

1. 确认磁盘未分区的可用空间

查看剩余未分区空间(重点看 Free space
):

sudo fdisk -l /dev/sda

2. 创建新的分区(用于 LVM)**

使用 fdisk
 添加新的主分区:

sudo fdisk /dev/sda

在 fdisk
 中按以下顺序操作(谨慎输入):

n      # 新建分区
p      # 主分区
5      # 分区号(如果已有1-4,用5起)
默认   # 起始扇区(直接回车)
默认   # 结束扇区(默认使用所有剩余)
t      # 修改分区类型
8e     # 设置为 LVM 类型
w      # 写入并退出

或者使用cfdisk创建

  1. 创建一个新的分区:Free space -->NEW

  2. 确认分区大小,回车。

  3. 改变分区类型,点击TYPE,选择linux LVM

  4. 选择Write,输入yes,保存配置到磁盘。

  5. 点击Quit退出。

3. 刷新分区表

sudo partprobe

4. 将新分区加入 LVM

假设新分区是 /dev/sda5
(你可以通过 lsblk
 或 fdisk -l
 来确认):

sudo pvcreate /dev/sda5 sudo vgextend rocky /dev/sda5


5. 扩展逻辑卷 rocky-lvroot

sudo lvextend -l +100%FREE /dev/rocky/lvroot

6. 扩展文件系统

  • ext4 文件系统:

sudo resize2fs /dev/rocky/lvroot

  • xfs 文件系统(CentOS/Rocky 默认是它): sudo xfs_growfs /

7. 验证

df -h /

三、测试磁盘的随机写性能

fio -name=random_write -filename=/data/test.file -direct=1 -iodepth=16 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=4 -runtime=60 -group_reporting

参数详解

参数
含义
-name=random_write
作业名称,用于标识测试(可自定义)。
-filename=/data/test.file
测试文件路径,FIO 将在此路径创建 / 覆盖测试文件。
-direct=1
直接 I/O(绕过系统缓存),模拟真实应用的磁盘访问。
-iodepth=16
I/O 队列深度,表示同时提交的未完成 I/O 请求数量(值越高,并发越高)。
-thread
使用线程模式而非进程模式执行测试(线程更轻量)。
-rw=randwrite
I/O 模式为随机写(randwrite
),模拟数据库等随机写入场景。
-ioengine=libaio
I/O 引擎使用 Linux AIO(异步 I/O),适合高并发场景。
-bs=4k
块大小(Block Size)为 4KB,对应数据库常见的 I/O 粒度(如 MySQL 页大小为 16KB)。
-size=1G
测试文件总大小为 1GB。
-numjobs=4
并发线程 / 进程数为 4,模拟多线程同时访问磁盘的场景。
-runtime=60
测试持续时间为 60 秒(达到时间后结束测试,即使未完成 size
)。
-group_reporting
合并所有线程的结果,以组为单位输出汇总统计信息。

结果分析

fio -name=random_write -filename=/data/test.file -direct=1 -iodepth=16 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=4 -runtime=60 -group_reporting
random_write: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
...
fio-3.35
Starting 4 threads
random_write: Laying out IO file (1 file / 1024MiB)
Jobs: 4 (f=4): [w(4)][90.0%][w=504MiB/s][w=129k IOPS][eta 00m:01s]
random_write: (groupid=0, jobs=4): err= 0: pid=17187: Fri Jun 20 09:12:25 2025
  write: IOPS=107k, BW=418MiB/s (438MB/s)(4096MiB/9801msec); 0 zone resets
    slat (nsec): min=1926, max=717670, avg=9304.40, stdev=25854.62
    clat (usec): min=112, max=2083, avg=588.33, stdev=154.27
     lat (usec): min=115, max=2098, avg=597.63, stdev=157.15
    clat percentiles (usec):
     |  1.00th=[  351],  5.00th=[  420], 10.00th=[  449], 20.00th=[  474],
     | 30.00th=[  494], 40.00th=[  519], 50.00th=[  545], 60.00th=[  586],
     | 70.00th=[  635], 80.00th=[  693], 90.00th=[  791], 95.00th=[  898],
     | 99.00th=[ 1106], 99.50th=[ 1172], 99.90th=[ 1385], 99.95th=[ 1549],
     | 99.99th=[ 1844]
   bw (  KiB/s): min=303377, max=532120, per=99.30%, avg=424969.74, stdev=18829.77, samples=76
   iops        : min=75844, max=133030, avg=106242.42, stdev=4707.45, samples=76
  lat (usec)   : 250=0.15%, 500=32.84%, 750=53.68%, 1000=10.87%
  lat (msec)   : 2=2.46%, 4=0.01%
  cpu          : usr=2.44%, sys=10.29%, ctx=332487, majf=0, minf=4
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
  WRITE: bw=418MiB/s (438MB/s), 418MiB/s-418MiB/s (438MB/s-438MB/s), io=4096MiB (4295MB), run=9801-9801msec

Disk stats (read/write):
    dm-1: ios=0/1028067, merge=0/0, ticks=0/432238, in_queue=432238, util=98.41%, aggrios=0/1048576, aggrmerge=0/0, aggrticks=0/439674, aggrin_queue=439674, aggrutil=98.13%
  sdb: ios=0/1048576, merge=0/0, ticks=0/439674, in_queue=439674, util=98.13%

1. 核心性能数据

  • 写入带宽(BW):418 MiB/s(约 438 MB/s),接近 SATA III 接口的理论上限(600 MB/s)。
  • IOPS(每秒操作数):107k,表明磁盘可处理高并发小文件写入。
  • 延迟(lat)
    • 平均延迟:597.63 微秒(约 0.6 毫秒),属于正常范围。
    • 99% 延迟:1.84 毫秒,表明极少数操作存在轻微延迟波动。

2. CPU 占用

  • 用户态(usr):2.44%,系统态(sys):10.29%,主要消耗在 I/O 调度。
  • 上下文切换(ctx):332487 次。

文章转载自PostgreSQL运维技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论