创建 lvm 后
dd if=/dev/zero of=1.img bs=1M count=16384 dd if=/dev/zero of=2.img bs=1M count=16384 losetup /dev/loop1 1.img losetup /dev/loop2 2.img pvcreate /dev/loop1 pvcreate /dev/loop2 vgcreate LVM1 /dev/loop1 /dev/loop2 vgchange -an LVM1
我分配了10G卷并格式化它
lvcreate -L10240 -n lv_34179984_0 LVM1 mkfs.xfs /dev/LVM1/lv_34179984_0 挂载-t xfs / dev / LVM1 / lv_34179984_0 / home /测试/图像
当我尝试将一个 8G 文件复制到 /home/test/image 时,它在复制 215M 后阻塞,iostat 给出
平均 CPU:%用户%nice%系统%iowait%steal%idle 0.00 0.00 0.00 29.82 0.00 70.18 设备:rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.20
如何解决这个问题?
答案1
您可以通过不在磁盘上文件系统(可能在卷组中)中已有的文件之上的卷组之上创建文件系统来解决这个问题。要使用 Inception 参考,您已经走得太深了,我的朋友。
每次你尝试在/home/test/image
系统上执行某些操作时都必须经过以下步骤:
- 文件系统操作
/home/test/image
- 卷组操作
- 虚拟磁盘(循环设备)操作
loop1
- 文件系统操作
1.img
- 磁盘操作在任何
1.img
位置
- 磁盘操作在任何
- 文件系统操作
- 虚拟磁盘(循环设备)操作
loop2
- 文件系统操作
2.img
- 磁盘操作在任何
2.img
位置
- 磁盘操作在任何
- 文件系统操作
这仍然忽略了启动磁盘 I/O(物理磁盘或循环设备)时内核中发生的一系列中间步骤。简而言之,您要求系统执行如此多的工作,性能将很糟糕。
1.img
您可以通过将和放在单独的物理磁盘上来稍微提高性能2.img
,但这不太可能带来实质性的好处。获得良好性能的唯一真正选择是创建卷组物理磁盘。