我们有带有 sdb 磁盘的 linux 机器
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 150G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 149.5G 0 part
├─lp55-lv_root 253:0 0 40G 0 lvm /
├─lp55-lv_swap 253:1 0 7.7G 0 lvm [SWAP]
└─lp55-lv_var 253:2 0 100.9G 0 lvm /var
sdb 8:16 0 100G 0 disk
目前 sdb 不是 LVM
我们想要将 sdb 创建到 LVM,新 VG 组为 new1,以便稍后可以根据需要增加 sdb
将sdb转换为LVM的过程是什么
# pvs
# lvdisplay
No volume groups found
# pvdisplay
# vgdisplay
No volume groups found
#
rpm -qa | grep -i lvm
lvm2-2.02.100-8.el6.x86_64
lvm2-libs-2.02.100-8.el6.x86_64
答案1
您可以对磁盘进行分区,/dev/sdb
以便其他操作系统可以识别正在使用的磁盘,但这将使将来扩展磁盘变得更加复杂,并且由于它是 VMDK,因此它在虚拟化主机上的名称无论如何都应该使其用途显而易见。因此,我建议在这种情况下省略分区,而仅将整个虚拟磁盘用于 LVM。所以:
pvcreate /dev/sdb
然后,您可以使用新的 PV(使用vgextend lp55 /dev/sdb
)扩展现有的 VG,但正如您所说,您想创建一个新的 VG,因此:
vgcreate new1 /dev/sdb
此时,新的VG已创建,但尚未分配LV。如果您想将所有可用容量使用到单个 LV/文件系统中,那么您可以这样做:
lvcreate -n lv_name -l 100%FREE new1
如果要创建某个特定大小的 LV,可以使用-L nnnG
GiB 来指定大小,而不是-l 100%FREE
.
(您可能应该替换lv_name
为描述 LV 预期用途的内容。)
LV创建完成后,您就可以随意使用它了。您可以将文件系统(任何类型)放在上面并安装它,或者将其用作数据库引擎的原始存储,或者您想用它做的任何事情。
例如,要在其上创建 ext4 文件系统:
mkfs.ext4 /dev/new1/lv_name
然后,在适合您的位置创建一个挂载点:
mkdir /some/where
在以下位置创建一个条目/etc/fstab
:
/dev/new1/lv_name /some/where ext4 defaults 0 2
并安装它:
mount /some/where
你就完成了。
答案2
由于您不需要保存任何数据,因此您可以遵循标准流程:
pvcreate /dev/sdb
vgcreate new1 /dev/sdb
现在您可以lvcreate
在该 VG 上进行卷操作
lvcreate -L10G -n testvol1 new1
如果您随后增加 的大小sdb
,则可以使用pvresize
来使新空间可用。