Ubuntu Server 安装程序能够设置 LVM 分区并把系统安装到其中,这也是受支持的安装方式。要进一步了解本页涉及的主题,请参阅逻辑卷管理(LVM)说明。
创建物理卷
首先需要一个物理卷。通常先准备一块硬盘,在上面创建类型为“LVM”的普通分区。可以使用 gparted 或 fdisk;一般整块磁盘只需要一个 LVM 类型分区,因为 LVM 会负责把它进一步划分成逻辑卷。在 gparted 中,创建分区时勾选 lvm 标志;使用 fdisk 时,将类型标为代码 8e。
创建 LVM 分区后,需要将其初始化为物理卷。假设分区是 /dev/sda1:
sudo pvcreate /dev/sda1
创建卷组
接下来创建卷组。本例把它命名为 foo,只使用一个物理卷:
sudo vgcreate foo /dev/sda1
创建逻辑卷
现在可以使用 foo 的一部分空闲空间创建逻辑卷:
sudo lvcreate --name bar --size 5g foo
这会在卷组 foo 中创建名为 bar、占用 5 GB 空间的逻辑卷。对应块设备可在 /dev/foo/bar 或 /dev/mapper/foo-bar 找到。
还可以试用 lvs 和 pvs:它们分别列出逻辑卷和物理卷;更详细的信息可通过 lvdisplay 和 pvdisplay 查看。
调整分区大小
使用下面的命令扩展逻辑卷:
sudo lvextend --resizefs --size +5g foo/bar
这会给卷组 foo 中的 bar 逻辑卷增加 5 GB,并自动调整其文件系统大小(如果文件系统支持)。空间来自所属卷组的空闲空间。若要指定绝对大小而不是增量,去掉前导 + 即可。
如果有多个物理卷,可以在命令末尾追加一个或多个物理卷名称,限定从哪些卷分配空间。
迁移分区
只有一个物理卷时,通常不需要迁移;添加新磁盘后,可能希望把逻辑卷移到新盘。要把逻辑卷 bar 从物理卷 /dev/sda1 移走,运行:
sudo pvmove --name bar /dev/sda1
若省略 --name bar,会迁移 /dev/sda1 上的所有逻辑卷。如果只有另一个物理卷,数据就移到它那里;否则,可以追加一个或多个指定目标物理卷名称,而不是让命令使用卷组中任意有空闲空间的物理卷。
迁移若因崩溃或断电中断,可以安全地继续;相关逻辑卷仍在使用时也能迁移。加上 --background 可以后台迁移并立即返回;加上 --interval s 可以每隔 s 秒报告进度。后台迁移的进度可以用 lvs 检查。
创建快照
创建快照时,会创建一个新逻辑卷,作为原逻辑卷的克隆。
快照最初不占用数据空间;原卷发生修改时,待修改的数据块会先复制到快照卷,以保留旧内容。因此,原卷修改越多,快照所需空间越大。一旦用完为快照分配的全部空间,快照就会失效,无法继续使用;此时只剩已经修改过的原卷。
lvs 会显示快照逻辑卷已使用的空间。如果快照快满了,可以用 lvextend 扩容。要为逻辑卷 bar 创建名为 lv_snapshot 的快照:
sudo lvcreate --snapshot --name lv_snapshot --size 5g foo/bar
这会创建 bar 的快照 lv_snapshot,为它分配 5 GB 空间。快照只存储自创建以来发生变化的磁盘区域,因此可以远小于原卷。
快照存在期间,可以挂载它,查看创建快照时的原始文件系统。本例挂载的设备是 /dev/foo/lv_snapshot。修改快照不影响原卷,修改原卷也不影响快照。
例如,为根逻辑卷创建快照后修改系统,如果决定恢复原先状态,可以把快照合并回原卷,使系统回到创建快照时的状态:
sudo lvconvert --merge foo/lv_snapshot
如果 foo/lv_snapshot 对应的原卷正在使用,命令会提示下次卷被激活时合并。若它是根卷,就需要重启。下次启动时卷会被激活,合并在后台开始;系统会像从未发生快照之后的修改一样启动,而实际数据迁移在使用系统时于后台完成。











暂无评论内容