我可以通过两种方式定义物理卷 (LVM):
- 创建一个
8e
(Linux LVM类型)分区,然后# pvcreate /dev/sdb1
- 直接使用未分区的磁盘使用 pvcreate,然后
# pvcreate /dev/sdc
<-- 请注意缺少数字,因为没有任何分区。
我的磁盘不是本地的,我使用两种方案:SAN 提供的 LUN 和 VMware 提供的磁盘在不同的系统中。我们正在测试 LUN/vmware 磁盘在线的调整大小,使用非分区磁盘定义的 PV 一切顺利,但对于分区层,无法使用parted
或热调整它们的大小fdisk
。
我的问题是:8e
如果我可以使用原始磁盘来创建物理卷然后在线调整它们的大小,为什么我还要麻烦地使用分区呢?
答案1
这是最近被问到的但它是在本地磁盘的背景下。在这种情况下,即使您只想将其设为跨越整个磁盘的单个大分区,也有充分的理由在磁盘上使用分区表:记录磁盘实际正在使用的事实,从而防止发生事故。
我相信托管磁盘的情况有所不同,无论是网络块设备、半虚拟化磁盘映像、SAN LUN、iSCSI 等......
在这种情况下,我认为您应该随意直接使用整个磁盘,原因如下:
- 尝试在这些磁盘上使用分区表显然会给您调整大小带来麻烦。这种类型的逻辑磁盘可以以物理磁盘无法做到的方式动态调整大小。如果这给你带来了麻烦,那就不要这样做,以免给自己带来麻烦。
- 这些类型的磁盘通常与物理硬盘不对应,并且不会遇到与物理磁盘相同的“此磁盘似乎是空白的”事故。
- 逻辑磁盘通常由类似容器的东西支持:外部分区、LVM LV、存储集群中的虚拟块设备以及额外的分区层可能是多余的。
答案2
你的磁盘分区工具能识别lvm吗?如果他们这样做,卡拉达会给出正确的建议。我做了一些测试,debian 上的 file 和 fdisk 都做了正确的事情,但要测试您使用的工具。
$ sudo file -s /dev/sd*
/dev/sda: DOS/MBR boot sector
/dev/sda1: Linux rev 1.0 ext2 filesystem data, UUID=censored, volume name "boot"
/dev/sda2: LVM2 PV (Linux Logical Volume Manager), UUID: censored, size: censored
/dev/sda3: Linux/i386 swap file (new style), version 1 (4K pages), size censored pages, no label, UUID=censored
$ sudo fdisk /dev/sda2
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
/dev/sda2: device contains a valid 'LVM2_member' signature, it's strongly recommended to wipe the device by command wipefs(8) if this setup is unexpected to avoid possible collisions.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x51e50433.
Command (m for help): q