给定 2 个 SSD 和 4 个 HDD 及其相应的 PV ( /dev/ssd1
, /dev/ssd2
,/dev/hdd1
到/dev/hdd4
)。
我知道,标识符并不正确,它们只是为了更容易跟踪我正在谈论的设备。
我想要的是
- 所有硬盘组成 RAID10 阵列
- 此 RAID10 上有一个 LVM 精简池
- 所有SSD组成RAID1阵列
- 使精简池的元数据位于此 RAID1 上
我做了什么
- 创建包含所有物理 PV 的 VG
vgcreate appdata /dev/sdd1 /dev/sdd2 /dev/hdd1 /dev/hdd2 /dev/hdd3 /dev/hdd4
- 创建 2 个 LV - 一个用于元数据,一个用于数据
lvcreate --type raid1 -m 1 -n ThinMetaAD -L 15G appdata /dev/ssd1 /dev/ssd2 lvcreate --type raid10 -n ThinAD -L 465G appdata /dev/hdd1 /dev/hdd2 /dev/hdd3 /dev/hdd4
- 转换根据LV薄手册
lvconvert --type thin-pool --poolmetadata appdata/ThinMetaAD appdata/ThinAD
我得到了什么
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
ssd 8:0 0 223.6G 0 disk
└─ssd1 8:1 0 16G 0 part
├─appdata-ThinAD_tmeta_rmeta_0 252:2 0 4M 0 lvm
│ └─appdata-ThinAD_tmeta 252:6 0 15G 0 lvm
│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tmeta_rimage_0 252:3 0 15G 0 lvm
└─appdata-ThinAD_tmeta 252:6 0 15G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
hdd 8:16 0 465.8G 0 disk
└─hdd1 8:17 0 465.8G 0 part
├─appdata-ThinAD_tdata_rmeta_0 252:7 0 4M 0 lvm
│ └─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tdata_rimage_0 252:8 0 232G 0 lvm
└─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
hdd 8:32 0 465.8G 0 disk
└─hdd2 8:33 0 465.8G 0 part
├─appdata-ThinAD_tdata_rmeta_1 252:9 0 4M 0 lvm
│ └─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tdata_rimage_1 252:10 0 232G 0 lvm
└─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
hdd 8:48 0 465.8G 0 disk
└─hdd3 8:49 0 465.8G 0 part
├─appdata-ThinAD_tdata_rmeta_2 252:11 0 4M 0 lvm
│ └─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tdata_rimage_2 252:12 0 232G 0 lvm
└─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
hdd 8:64 0 931.5G 0 disk
└─hdd4 8:65 0 466G 0 part
├─appdata-ThinAD_tdata_rmeta_3 252:13 0 4M 0 lvm
│ └─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tdata_rimage_3 252:14 0 232G 0 lvm
└─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
ssd
└─ssd2 259:5 0 16G 0 part
├─appdata-ThinAD_tmeta_rmeta_1 252:4 0 4M 0 lvm
│ └─appdata-ThinAD_tmeta 252:6 0 15G 0 lvm
│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tmeta_rimage_1 252:5 0 15G 0 lvm
└─appdata-ThinAD_tmeta 252:6 0 15G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
问题
我想知道上面的设置在我最初想要的意义上是否正确,特别是我担心下面的 3 个级别partition
,如下所示:
hdd 8:32 0 465.8G 0 disk
└─hdd2 8:33 0 465.8G 0 part
>>├─appdata-ThinAD_tdata_rmeta_1 252:9 0 4M 0 lvm
>>│ └─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
>>│ └─appdata-ThinAD 252:16 0 464G 0 lvm
└─appdata-ThinAD_tdata_rimage_1 252:10 0 232G 0 lvm
└─appdata-ThinAD_tdata 252:15 0 464G 0 lvm
└─appdata-ThinAD 252:16 0 464G 0 lvm
- 我的设置正确吗?
- 如果没有,需要采取哪些步骤才能获得所需的输出我想要的是?
答案1
lsblk
由于一般设备依赖性,以这种方式显示它。对于复杂的设置,这可能与物理存储没有直接关系,因此它看起来“错误”。
也许 LVM 工具可以提供更清晰的图景:
# lvs --all --segments --options +seg_le_ranges appdata
LV VG Attr #Str Type SSize LE Ranges
ThinAD appdata twi-a-tz-- 1 thin-pool 9.00g [ThinAD_tdata]:0-2303
[ThinAD_tdata] appdata rwi-aor--- 2 raid1 9.00g [ThinAD_tdata_rimage_0]:0-2303,[ThinAD_tdata_rimage_1]:0-2303
[ThinAD_tdata_rimage_0] appdata iwi-aor--- 1 linear 9.00g /dev/loop2001:1-2304
[ThinAD_tdata_rimage_1] appdata iwi-aor--- 1 linear 9.00g /dev/loop2002:1-2304
[ThinAD_tdata_rmeta_0] appdata ewi-aor--- 1 linear 4.00m /dev/loop2001:0-0
[ThinAD_tdata_rmeta_1] appdata ewi-aor--- 1 linear 4.00m /dev/loop2002:0-0
[ThinAD_tmeta] appdata ewi-aor--- 2 raid1 92.00m [ThinAD_tmeta_rimage_0]:0-22,[ThinAD_tmeta_rimage_1]:0-22
[ThinAD_tmeta_rimage_0] appdata iwi-aor--- 1 linear 92.00m /dev/loop1001:1-23
[ThinAD_tmeta_rimage_1] appdata iwi-aor--- 1 linear 92.00m /dev/loop1002:1-23
[ThinAD_tmeta_rmeta_0] appdata ewi-aor--- 1 linear 4.00m /dev/loop1001:0-0
[ThinAD_tmeta_rmeta_1] appdata ewi-aor--- 1 linear 4.00m /dev/loop1002:0-0
[lvol0_pmspare] appdata ewi------- 1 linear 92.00m /dev/loop2001:2305-2327
我尝试使用循环设备、/dev/loop100x
元数据和/dev/loop200x
数据来近似您的设置。您的输出应列出其他设备和尺寸。
您可以看到所有 tmeta 内容都在 /dev/loop1xxx 上,所有 tdata 内容都在 /dev/loop2xxx 上,所以它应该如您所愿。
pmspare(池元数据备用)卷除外。 lvmthin 联机帮助页中对此进行了描述。