LVM 入门

Table of Contents

引用 Wikipedia:Logical Volume Manager  的解释

LVM 是一种可用在 Linux 内核逻辑分卷 管理器,可用于管理磁盘驱动器或其他类似的大容量存储设备

LVM基本组成

LVM利用Linux内核的 device-mapper 功能来实现 存储系统的虚拟化 (系统分区独立于底层硬件)

通过LVM:

可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions)
可以更简便地扩大和缩小分区
可以增删分区时无需担心某个硬盘上没有足够的连续空间

避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便

LVM的基本组成部分如下:

  • 物理卷 ( PV ):一个可供存储LVM的块设备,,它包含一个 特殊的LVM头
例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt)
  • 卷组 ( VG ) : 物理卷 的一个 ,作为 存放 逻辑卷容器
  • 逻辑卷 ( LV ): 逻辑卷存放在一个 卷组 中并由物理块组成
一个类似于物理设备的块设备

例如,可以直接在它上面创建一个文件系统文件系统
  • 物理块 ( PE ):一个 卷组最小的连续区域 (默认为 4 MiB ),多个物理块将被分配给一个逻辑卷
可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷

示例:

'''物理硬盘'''

  硬盘1 (/dev/sda):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    |分区1 50GB (物理卷)           |分区2 80GB (物理卷)            |
    |/dev/sda1                    |/dev/sda2                     |
    |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ __|

  硬盘2 (/dev/sdb):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |分区1 120GB (物理卷)                         |
    |/dev/sdb1                                         |
    | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _   |

 '''LVM逻辑卷'''

   卷组(Volume Group1) (/dev/MyVolGroup/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 
     |逻辑卷1 15GB                  |逻辑卷2 35GB                        |逻辑卷3 200GB                         |
     |/dev/MyVolGroup/rootvol        |/dev/MyVolGroup/homevol             |/dev/MyVolGroup/mediavol              |
     |_ _ _ _ _ _ _ _ _ _ _ _ _ _ __|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|

优点

比起普通的硬盘分区管理方式,LVM更富于灵活性:

  • 将多块硬盘看作一块大硬盘
  • 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区
  • 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小
  • 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间
  • 可以在线对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作
不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作
  • 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线/动态迁移至别的硬盘上
  • 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间降低到最小
  • 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据
这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统

使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦

缺点

  • 在系统设置时需要更复杂的额外步骤
  • Windows系统并不支持LVM,若使用双系统,将无法在Windows上访问LVM分区

准备

确保已安装 lvm2 软件包

在LVM上安装 Linux

应该在 linux安装过程 中的的分区和创建文件系统这一步中创建LVM卷。 不要直接格式化 一个分区作为根文件系统(/),而应将其 创建 在一个 逻辑卷 (LV)中 。快速导览:

  1. 创建物理卷(PV)所在的分区
  2. 创建物理卷(PV):
    • 如果只有一个硬盘,那么最好只创建一个分区一个物理卷
    • 如果你有多个硬盘,可以创建多个分区,在每个分区上分别创建一个物理卷
  3. 创建卷组(VG),并把所有物理卷加进卷组
  4. 在卷组(VG)上创建逻辑卷(LV)
  5. 继续格式化分区步骤
  6. 当做到的“Initramfs”步骤时,把 lvm2加入到 mkinitcpio.conf 文件中(这一步只是Arch有效, 实际上要获得的效果是启动Linux的适合能找到编译好的 lvm2 模块)
警告: 若使用不支持LVM的引导程序,/boot不能置于LVM中

必须创建一个独立的/boot分区并直接格式化它,已知支持LVM的引导程序只有GRUB

创建分区

在继续配置LVM前,必须对设备进行分区。创建分区:

  • 若使用 MBR ,设置 分区类型为 8e
在"fdisk"中为Linux LVM
  • 若使用 GPT , 设置分区类型为 E6D6D379-F507-44C2-A23C-238F2A3DF928
在"fdisk"中为Linux LVM

在"gdisk"中为8e00

创建物理卷

可通过以下命令列出可被用作物理卷的设备:

$ lvmdiskscan
警告: 请确认对正确的设备进行操作,否则会导致文件丢失!

在列出的设备上创建物理卷:

# pvcreate DEVICE  

该命令在各个设备上创建LVM头。如#LVM基本组成所示, DEVICE可以是:

  • 磁盘(如/dev/sda)
  • 分区(如/dev/sda2)
  • 环回设备
$ pvcreate /dev/sda2

可以用以下命令查看已创建好的物理卷:

$ pvdisplay
注意: 如果用的是未格式化过且擦除块(erase block)大小 小于1M 的SSD,请采用以下命令pvcreate --dataalignment 1m /dev/sda来设置对齐(alignment)

创建卷组

创建完成物理卷(PV)之后,下一步就是在该物理卷创建卷组(VG)了。 首先必须先在其中一个物理卷(PV)创建一个卷组:

# vgcreate <volume_group> <physical_volume>

可用作字符卷组的名称可在lvm(8)中查到。例如:

$ vgcreate VolGroup00 /dev/sda2

然后让该卷组扩大到其他所有的物理卷:

# vgextend <卷组名> <物理卷>
# vgextend <卷组名> <其它物理卷>
# ...

例如:

$ vgextend VolGroup00 /dev/sdb1
$ vgextend VolGroup00 /dev/sdc

其中,“VolGroup00”名字换成自己起的名字即可。 接下来可以用以下命令查看卷组:

$ vgdisplay
注意: 可以创建多个的卷组,但这将使你的硬盘空间分布在不同(逻辑)磁盘上

一步创建卷组

LVM支持将卷组与物理卷的创建聚合在一个命令中。例如,为了在前文提到的三个设备中创建名为VolGroup00的卷组,可以执行如下命令:

$ vgcreate VolGroup00 /dev/sda2 /dev/sdb1 /dev/sdc

该命令首先会在分区上创建物理卷(如果之前没有创建过),再创建一个包含三个物理卷的卷组

如果设备上已经存在文件系统,命令会提出警告

创建逻辑卷

创建完卷组(VG)之后,就可以开始创建逻辑卷(LV)了。输入下面命令以指定新逻辑卷的名字、大小及其所在的卷组:

# lvcreate -L <卷大小> <"卷组名> -n <卷名>

例如:

$ lvcreate -L 10G VolGroup00 -n lvolhome

该逻辑卷创建完后,就可以通过 /dev/mapper/Volgroup00-lvolhome/dev/VolGroup00/lvolhome 来访问它

与卷组命名类似,你可以按你的需要将逻辑卷命名

可以指定一个或多个物理卷来限制LVM分配数据空间的位置。比如希望在较小的SSD硬盘上创建根文件系统,并在较慢的机械硬盘上创建家目录卷,仅需把物理卷设备加入到命令中

$ lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1

如果想让要创建的逻辑卷拥有卷组(VG)的所有未使用空间,请使用以下命令:

$ lvcreate -l +100%FREE  <volume_group> -n <logical_volume>

可以通过以下命令来查看逻辑卷:

$ lvdisplay
提示: 一开始可以创建小一点的逻辑卷,在卷组里留下一部分未使用空间,以后就可以根据需要再作扩展了

建立文件系统与挂载逻辑卷

现在的逻辑卷应该已经在 dev/mapper/dev/YourVolumeGroupName 中了。如果无法在以上位置找到它,请使用以下命令来加载模块、并扫描与激活卷组:

$ modprobe dm-mod
$ vgscan
$ vgchange -ay

现在可以在逻辑卷上创建文件系统并像普通分区一样挂载它了:

# mkfs.<类型> /dev/mapper/<卷组名>-<卷名>
# mount /dev/mapper/<卷组名>-<卷名> <挂载点>

例如:

$ mkfs.ext4 /dev/mapper/VolGroup00-lvolhome
$ mount /dev/mapper/VolGroup00-lvolhome /home
警告: 挂载点请选择所新建的逻辑卷(例如:/dev/mapper/Volgroup00-lvolhome)

不要使用逻辑卷所在的实际分区设备(即不要使用:/dev/sda2)

配置 mkinitcpio.conf

如果根文件系统基于LVM,需要启用适当的mkinitcpio钩子,否则系统可能无法启动:

  • 若使用基于busybox的initramfs,请启用 udevlvm2
  • 若使用基于systemd的initramfs,请启用 systemdsd-lvm2

busybox

udev默认已经预设好,不必手动启用了。只需要编辑/etc/mkinitcpio.conf文件,在block与filesystem这两项中间插入lvm2:

基于busybox的initramfs: /etc/mkinitcpio.conf

HOOKS="base udev ... block lvm2 filesystems"

systemd

基于systemd的initramfs: /etc/mkinitcpio.conf

HOOKS=(base systemd ... block sd-lvm2 filesystems)
提示:lvm2和sd-lvm2钩子被lvm2安装,而不是mkinitcpio

如果你在"arch-chroot"中新安装的Arch Linux中运行"mkinitcpio",必须在环境中安装lvm2以使mkinitcpio找到lvm2或sd-lvm2钩子

如果lvm2未安装, mkinitcpio将报错:Error: Hook 'lvm2' cannot be found.

若根文件系统在LVM + RAID上,请参见#为RAID配置mkinitcpioZ

内核启动参数

如果根文件系统位于逻辑分卷,则root= 内核参数必须指向一个映射设备,比如/dev/mapper/vg-name-lv-name

配置

高级选项

可以通过修改 /etc/lvm/lvm.conf 文件中的 auto_activation_volume_list 参数 限制 自动激活的卷

如果存在问题,可以将此选项注释掉 

调整卷

物理卷

对于存在物理卷的设备,在扩增其容量之后或缩小其容量之前,必须使用 pvresize 命令对应地增加或减少物理卷的大小

扩增

增大分区 /dev/sda1 的容量之后,需要执行以下命令扩展物理卷的大小:

$ pvresize /dev/sda1

命令将自动探测设备当前大小并将物理卷扩展到其最大容量

注意: 该命令可在卷在线(on-line)时运行
缩小

在减少某个物理卷所在设备大小之前,需要通过指定 –setphysicalvolumesize 大小参数缩小物理卷大小,例如:

$ pvresize --setphysicalvolumesize 40G /dev/sda1

该命令可能会提示以下错误:

/dev/sda1: cannot resize to 25599 extents as later ones are allocated.
 0 physical volume(s) resized / 1 physical volume(s) not resized

即该物理卷已分配物理区域超过了命令指定的新大小边界,pvresize会拒绝将物理卷缩小

若磁盘空间足够,可通过pvmove将物理区域重新分配至别的卷组来解决这个问题
  • 移动物理区域

    在移动空闲的物理区域到卷尾部之前,需要先查看物理分段。如下例所示,仅有一个物理卷/dev/sdd1, 一个卷组vg1和一个逻辑卷backup:

    $ pvdisplay -v -m
    
      Finding all volume groups.
        Using physical volume(s) on command line.
      --- Physical volume ---
      PV Name               /dev/sdd1
      VG Name               vg1
      PV Size               1.52 TiB / not usable 1.97 MiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              399669
      Free PE               153600
      Allocated PE          246069
      PV UUID               MR9J0X-zQB4-wi3k-EnaV-5ksf-hN1P-Jkm5mW
    
      --- Physical Segments ---
      Physical extent 0 to 153600:
        FREE
      Physical extent 153601 to 307199:
        Logical volume      /dev/vg1/backup
        Logical extents     1 to 153599
      Physical extent 307200 to 307200:
        FREE
      Physical extent 307201 to 399668:
        Logical volume      /dev/vg1/backup
        Logical extents     153601 to 246068
    

    可用空间在卷中段。为了减小物理卷大小,首先必须把所有的已用分段移到前部

    此例中,第一个可用空间在第0至第153600分段共153601个可用区域。可以从最后的分段中移动相同数目的物理区域来填补这段空间
    
    $ pvmove --alloc anywhere /dev/sdd1:307201-399668 /dev/sdd1:0-92466
    
    /dev/sdd1: Moved: 0.1 %
    /dev/sdd1: Moved: 0.2 %
    ...
    /dev/sdd1: Moved: 99.9 %
    /dev/sdd1: Moved: 100,0%
    
    • 命令将92467 (399668-307201)个物理区域从最后一个分段移动到第一个分段:由于第一个分段共有153600个空闲的物理区域,可以容纳92467个物理区域,命令可以成功执行
    • 参数–alloc anywhere可以用于在同一个分区中移动物理区域的
    若要在不同分区中移动,命令形式应该是# pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999
    
    • 当操作的数据较多时,移动操作将持续很久(一到两个小时)
    最好在Tmux或GNU Screen会话中执行此过程
    
    任何形式的意外中断都可能会导致致命错误
    
    • 当操作完成后,可运行Fsck保证文件系统完整性
  • 调整物理卷大小

    当所有空闲分段都移动到最后的物理区域时,运行$ vgdisplay查看。之后可以再次运行命令:

    $ pvresize --setphysicalvolumesize size PhysicalVolume
    

    结果类似:

    $ pvs
    
      PV         VG   Fmt  Attr PSize    PFree 
      /dev/sdd1  vg1  lvm2 a--     1t     500g
    
  • 调整分区大小

    最后,可以用你喜欢的分区工具来缩小该分区

逻辑卷

lvresize(8)提供一些与lvextend(8)和lvreduce(8)相同的命令与选项,并同时允许两种类型的操作。然而,这几个命令都提供一个-r/–resizefs选项,使用fsadm(8)在调整逻辑卷时同时调整其中的文件系统(支持ext2, ext3, ext4, ReiserFS 和 XFS )。 因此,对普通使用来说,使用 lvresize–resizefs 将会更容易, 除非有特定的需求或希望完全控制流程

警告: 尽管扩大一个文件系统可以“在线”(on-line),也就是当它已挂载时完成,甚至对根分区

缩小一个文件系统却往往要求先卸载它,以避免丢失数据

请先确保你的文件系统支持相关操作
同时缩小逻辑卷和其文件系统
注意: 只有ext2,ext3,ext4,ReiserFS和 XFS 文件系统支持以下操作

将MyVolGroup组中的逻辑卷mediavol扩大10GiB,并同时扩大其文件系统:

$ lvresize -L +10G --resizefs MyVolGroup/mediavol

将MyVolGroup组中的逻辑卷mediavol大小调整为15GiB,并同时调整其文件系统:

$ lvresize -L 15G --resizefs MyVolGroup/mediavol

将卷组中的所有剩余空间分配给mediavol:

$ lvresize -l +100%FREE --resizefs MyVolGroup/mediavol
单独设置文件系统大小
对于不支持fsadm(8)的文件系统,请在缩小逻辑卷前或扩大逻辑卷后,使用适当的工具来调整文件系统的大小

先将MyVolGroup组中的逻辑卷mediavol扩大2 GiB,但不调整其文件系统:

$ lvresize -L +2G MyVolGroup/mediavol

然后在调整其文件系统,是其达到逻辑卷的大小:(以ext4为例)

$ resize2fs /dev/MyVolGroup/mediavol

要将逻辑卷mediavol缩小500 MiB,先计算调整后文件系统的大小并调整文件系统(以ext4为例):

$ resize2fs /dev/MyVolGroup/mediavol 调整后的大小

然后再缩小逻辑卷的大小:

$ lvresize -L -500M MyVolGroup/mediavol

重命名卷

重命名卷组

要重命名一个卷组,请使用 vgrename (8)命令。可使用下面的任意一条命令将卷组vg02重命名为my_volume_group

$ vgrename /dev/vg02 /dev/my_volume_group
$ vgrename vg02 my_volume_group

重命名逻辑卷

要重命名一个逻辑卷,请使用 lvrename(8) 命令。可使用下面的任意一条命令将vg02组中的逻辑卷lvold重命名为lvnew.

$ lvrename /dev/vg02/lvold /dev/vg02/lvnew
$ lvrename vg02 lvold lvnew

移除逻辑卷

警告: 在移除逻辑卷之前,请先备份好数据以免丢失!

首先,找到所要移除的逻辑卷的名称。可以使用以下命令来查看系统的所有逻辑卷:

# lvs

接下来,找到所要移除的逻辑卷的挂载点

$ lsblk

并卸载它:

$ umount /<mountpoint>

最后,使用以下命令来移除逻辑卷:

# lvremove <volume_group>/<logical_volume>

例如:

$ lvremove VolGroup00/lvolhome

请输入 y 来确定你要执行移除逻辑卷操作

此外,请不要忘了更新/etc/fstab 

可以再次使用 lvs 命令来确认逻辑卷已被移除

添加物理卷到卷组中

首先创建一个新的物理卷,再把卷组扩充到该物理卷上:

$ pvcreate /dev/sdb1
$ vgextend VolGroup00 /dev/sdb1

这将增加你卷组中的物理区域总数,可以按需要将它们分配到逻辑卷中

注意: 将分区表保存在LVM所在媒体设备是个值得借鉴的方式

对于MBR可以使用类型8e,或GPT类型8e00

从卷组中移除(物理)分区

如果在这个物理分区上创建了一个逻辑卷,请先移除它 

首先,分区中的所有数据需要被转移到别的分区,幸而LVM提供了以下的简便方式:

$ pvmove /dev/sdb1

如果想指定所要转移的目标分区,那么可以把该分区作为pvmove的第二个参数:

$ pvmove /dev/sdb1 /dev/sdf1

接着,从卷组(VG)中移除物理卷(PV):

$ vgreduce myVg /dev/sdb1

或者把所有的空物理卷(PV)都移除掉:

$ vgreduce --all vg0

最后,如果仍然想要使用该分区,而且不想让LVM以为它是一个物理卷,那么可以执行以下命令:

$ pvremove /dev/sdb1

停用卷组

只需执行:

$ vgchange -a n my_volume_group

这将停用此卷组,以便卸载存储它的容器

逻辑卷类型

除了普通的逻辑卷, LVM还支持: 快照 , logical volume caching , thin provisioned逻辑卷 ,以及 RAID

快照

LVM可以给系统创建一个快照,由于使用了写入时复制(copy-on-write) 策略,相比传统的备份更有效率。 初始的 快照只有关联到 实际数据的inode实体链接 (hark-link)而已

  • 只要实际的数据没有改变,快照就只会包含指向数据的inode的指针,而非数据本身
  • 一旦更改了快照对应的文件或目录,LVM就会自动 拷贝 相应的数据,包括快照所对应的 旧数据的拷贝 和当前系统所对应的 新数据的拷贝
这样的话,只要你修改的数据(包括原始的和快照的)不超过2G,就可以只使用2G的空间对一个有35G数据的系统创建快照

要创建快照,在卷组中必须有 未被分配的空间

和其他逻辑卷一样,快照也会占用卷组中的空间

所以,如果计划使用快照来备份你的根(root)分区,不要将整个卷组的空间都分配给根(root)逻辑卷

快照操作

可以像创建普通逻辑卷一样创建快照逻辑卷

$ lvcreate --size 100M --snapshot --name snap01 /dev/vg0/lv
不过这只能修改少于100M的数据,否则该快照逻辑卷空间会不足

要将逻辑卷卷'lv' 恢复到创建快照'snap01'时的状态,请使用:

$ lvconvert --merge /dev/vg0/snap01

如果逻辑卷处于活动状态,则在下次重新启动时将进行合并(merging)

合并 甚至可在LiveCD中进行。注意: 合并后快照将被删除

也以拍摄多个快照,每个快照都可以任意与对应的逻辑卷合并 

快照也可以被挂载,并可用dd或者tar备份:

  • 使用dd备份的快照的大小为拍摄快照后对应逻辑卷中变更过文件的大小
  • 要使用备份,只需创建并挂载一个快照,并将备份写入或解压到其中0,再将快照合并到对应逻辑卷即可
快照主要用于提供一个文件系统的拷贝,以用来备份

比起直接备份分区,使用快照备份可以提供一个更符合原文件系统的镜像

LVM 缓存

Cache逻辑卷将使用一个 较小而快速 的逻辑卷,来提高 较大但慢速 的逻辑卷的性能。它将大型逻辑卷中 经常使用的块 存储较快的缓存卷

LVM将这个小而快速的逻辑卷称为缓冲池逻辑卷(cache pool LV)

大而慢的逻辑卷则被称为源逻辑卷(origin LV)

由于dm-cache(内核驱动)的要求,LVM进一步将缓存池逻辑卷分为两个设备:

  • 缓存数据逻辑卷:存放源逻辑卷中常用块的拷贝,以提升源逻辑卷的速度
  • 缓存元数据逻辑卷:存储记录信息,这些信息指定了源逻辑卷中的数据被存放到缓存逻辑卷中的位置
这些元数据是用来确定“源逻辑卷”中的一个块是存储到自身空间还是缓存逻辑卷中

要想创建最好、最稳定的缓存逻辑卷,必须熟悉这些信息,同时所有这些被提到的逻辑卷都必须存放在一个卷组中 

创建缓存

最快速的方法是直接在快速的设备上创建一个物理卷,并把它添加到一个卷组中:

$ vgextend dataVG /dev/sdx

只需一步,即可在sdb上创建一个缓存池,自动生成元数据,将逻辑卷dataLV缓存到sdb上:

$ lvcreate --type cache --cachemode writethrough -L 20G -n dataLV_cachepool dataVG/dataLV /dev/sdx
显然,如果想让缓存变得更大,可更改 -L参数。

Cachemode有两个可能的参数:

  • writethrough: 确保任何数据写入都会被同时存储到缓存池逻辑卷和源逻辑卷中
    • 在这种情况下,丢失与缓存池逻辑卷关联的设备不会丢失任何数据
  • writeback: 可提供更好的性能
    • 如果用于缓存的设备发生故障,数据丢失的风险会更高
如果未指定--cachemode,将会自动选择writethrough

删除缓存

如果需要撤消上面的创建操作:

$ lvconvert --uncache dataVG/dataLV

这会将缓存中挂起的写入操作提交到源逻辑卷, 然后删除缓存逻辑卷

Raid

lvm(8) RAID是一种创建逻辑卷的方法,它使用多个物理设备来提高性能或容错能力 (镜像或读写分离等)

在LVM中,这些物理设备是单个卷组中的物理卷 

LVM RAID支持RAID 0,RAID 1,RAID 4,RAID 5,RAID 6和RAID 10

配置RAID

创建物理卷:

$ pvcreate /dev/sda2 /dev/sdb2

创建卷组:

$ vgcreate VolGroup00 /dev/sda2 /dev/sdb2

使用 lvcreate –type raidlevel 参数创建逻辑卷

# lvcreate --type RaidLevel [OPTIONS] -n Name -L Size VG [PVs]

例如:

$ lvcreate --type raid1 --mirrors 1 -L 20G -n myraid1vol VolGroup00 /dev/sda2 /dev/sdb2

这将会在设备/dev/sda2、/dev/sdb2上和"VolGroup00"卷组中创建一个20GiB的镜像(mirrored)逻辑卷"myraid1vol"

为RAID配置mkinitcpio

如果的根文件系统在LVM RAID上,除了lvm2或sd-lvm2钩子,还需添加 dm-raid 以及恰当的 RAID模块 (例如raid0,raid1,raid10或raid456)到mkinitcpio.conf中的MODULES数组中

  • 对于基于busybox的initramfs:/etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456)
HOOKS=(base udev ... block lvm2 filesystems)
  • 对于基于systemd的initramfs:/etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456)
HOOKS=(base systemd ... block sd-lvm2 filesystems)