这是快速入门指南 :)
首先删除系统上任何快照 LV。LVM 2 不处理这些快照 LV,并且会阻止在 LVM 2 启动时激活源。
确保你有除了标准启动分区之外的其他启动系统的方法。准备好 LVM 1 工具、标准系统工具 (mount) 和 LVM 1 兼容内核,以防你需要返回并修复一些问题。
获取 LVM 2 工具源代码和 device mapper 源代码并编译它们。在编译 LVM 2 工具之前,你需要使用 "make install" 安装 device mapper 库。还需要将 dm/scripts/devmap_mknod.sh 脚本复制到 /sbin。我建议现在只安装 'lvm' 二进制文件,这样你就可以在需要时访问 LVM 1 工具。如果你可以访问 LVM 2 和 device-mapper 的软件包,你可以安装它们,但要注意它们可能会覆盖你的 LVM 1 工具集。
获取一个 device mapper 兼容内核,可以是内置的,也可以是内核模块。
找出 LVM 1 在你的启动脚本中激活的位置。确保 device-mapper 模块在那时已加载(如果你使用 device mapper 作为模块),并在之后添加 '/sbin/devmap_mknod.sh; lvm vgscan; lvm vgchange -ay'。
安装包含 device mapper 支持的内核。重启。如果一切顺利,你应该正在运行 lvm2。
不。你需要 device-mapper。lvm2 工具使用 device-mapper 与内核接口,并完成所有设备映射(因此得名 device-mapper)。只要你有 device-mapper,你就应该能够使用 LVM2。
这的主要原因是重启进入支持 dm 的内核后,没有运行 "dmsetup mknodes"。此脚本为 device mapper 生成控制节点。
如果你没有 "dmsetup mknodes",不要绝望!(尽管你可能应该升级到最新版本的 device-mapper。)自己创建/dev/mapper/control文件很容易
确保你已加载 device-mapper 模块(如果你没有将其构建到内核中)。
运行
# cat /proc/misc | grep device-mapper | awk '{print $1}' |
运行
# mkdir /dev/mapper |
运行
# mknod /dev/mapper/control c 10 $number |
如果你正在使用 lvm2 tarball 中的稳定 2.4 device mapper 补丁,则 lvm2 工具支持你期望使用 lvm1 的所有主要功能。(从 lvm1 升级到 lvm2 之前,你仍然需要删除快照)
如果你正在使用 2.6 kernel.org 内核系列中的 device mapper 版本,则不支持以下命令和 LV 类型
pvmove
快照
是的。LVM 2 使用 lvm 2 格式元数据。这种格式比 LVM 1 格式元数据灵活得多,消除了或减少了 LVM 1 的大多数限制。
是的。LVM 2 将激活并操作使用 LVM 1 创建的 VG 和 LV。例外情况是使用 LVM 1 创建的快照 - 这些快照应在升级前删除。升级后保留的快照必须先删除,然后才能由 LVM 2 激活其源。
是的。使用 vgconvert 将你的 VG 和其中包含的所有 LV 转换为新的 lvm 2 格式元数据。请注意,并非总是可以恢复到 lvm 1 格式元数据。
一个可能的原因是某些版本的 LVM 1(最初报告此错误的 用户使用的是 Mandrake 9.2,但这不一定仅限于该发行版)没有按照预期将 UUID 放入 PV 和 VG 结构中。最新版本的 LVM 2 工具会在看到 UUID 丢失时自动填充结构中的 UUID,因此你应该获取更新的版本,你的问题应该可以解决。如果仍然存在问题,请发布到 linux-lvm 邮件列表
在 LVM 上使用 root 分区升级到 LVM 2 有点棘手,但并非不可能。你需要排队一个带有 device-mapper 支持的内核并安装 lvm2 工具(你可能需要备份 LVM 1 工具,或者找到一个内置 LVM 工具的救援磁盘,以防你在完成之前需要它们)。然后找到一个支持你的发行版和 lvm 2 的 mkinitrd 脚本。
目前,这是我知道的支持 lvm2 的 mkinitrd 脚本列表,按发行版排序
没问题 - LVM 通过 UUID 而不是设备名称来识别 PV。
每个磁盘 (PV) 都标有一个 UUID,该 UUID 在系统中唯一标识它。在添加新磁盘更改驱动器编号后,'vgscan' 会识别这一点。大多数发行版在 lvm 启动脚本中运行 vgscan,以便在添加硬件后重启时应对这种情况。如果你正在进行热添加,我认为你必须手动运行它。另一方面,如果你的 vg 已激活并正在使用,则重新编号根本不会影响它。只有激活才需要标识符,最坏的情况是激活将失败,而没有 vgscan,并提示缺少 PV。
![]() | LVM 当前正在使用的驱动器的故障或移除将导致当前使用和未来激活使用该驱动器的 VG 出现问题。 |
1.87 GB 的数字四舍五入到小数点后 2 位,因此它可能约为 1.866 GB 或其他值。这是一个人类可读的输出,让你大致了解 VG 的大小。如果你要指定确切的大小,则必须使用扩展而不是字节的倍数。
在 vgdisplay 的情况下,使用可用 PE 计数而不是人类可读的容量。
Free PE / Size 478 / 1.87 GB ^^^ |
# lvcreate vg -l478 |
在 vgs 的情况下,你需要指示它告诉你多少扩展可用
# vgs -o +vg_free_count,vg_extent_count |
在 LVM2 中,快照默认是读/写的,而在 LVM1 中,快照仅是只读的。有关更多详细信息,请参阅 第 3.8 节