如何缩小LV快照的分区?

我想尝试快照function,但我不明白所有的图片。
我在Ubuntu服务器11.10上 ,我创build了两个卷组和一些逻辑卷像这样:

root@darwin:~# vgdisplay --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 272.24 GiB PE Size 4.00 MiB Total PE 69694 Alloc PE / Size 69694 / 272.24 GiB Free PE / Size 0 / 0 VG UUID YRDCLM-ZfZN-kCoi-PIse-qMdn-2MBm-OmegqH --- Volume group --- VG Name os System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 67.75 GiB PE Size 4.00 MiB Total PE 17343 Alloc PE / Size 17343 / 67.75 GiB Free PE / Size 0 / 0 VG UUID ZRX1mD-CyhV-7u9f-15bh-2rnT-Nbee-1QD20u root@darwin:~# lvdisplay --- Logical volume --- LV Name /dev/data/var VG Name data LV UUID FuJlvb-NZ3H-YoaO-6Qsn-SYuz-QaHb-Ms2YtX LV Write Access read/write LV Status available # open 1 LV Size 272.24 GiB Current LE 69694 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Logical volume --- LV Name /dev/os/boot VG Name os LV UUID HE0izv-zuXu-0cZT-L3o2-O9Cj-5wEX-R4O6SB LV Write Access read/write LV Status available # open 1 LV Size 188.00 MiB Current LE 47 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1 --- Logical volume --- LV Name /dev/os/swap VG Name os LV UUID 4hlke0-kl3r-xVbN-Myjz-dH6H-hkRI-Uh7ncl LV Write Access read/write LV Status available # open 2 LV Size 1.86 GiB Current LE 476 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2 --- Logical volume --- LV Name /dev/os/root VG Name os LV UUID 7qpM1B-DjHp-v6Ju-Ia4L-TPtP-5sCF-UR6Mr3 LV Write Access read/write LV Status available # open 1 LV Size 65.70 GiB Current LE 16820 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:3 

这是df -h:

 root@darwin:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/os-root 65G 1.1G 61G 2% / udev 2.0G 12K 2.0G 1% /dev tmpfs 792M 244K 792M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm /dev/mapper/data-var 268G 528M 254G 1% /var /dev/mapper/os-boot 183M 51M 123M 30% /boot 

在这一点上,我不明白,如果我需要shirink一LV创造一个新的分区,将包含快照,因为我试图创build一个新的LV,但它说没有空间。 我对吗? 如果是这样,缩小的正确方法是什么? 现在,我想创build一个快照/

收缩文件系统是可能的,但有其风险,不build议使用。 这将是非常困难的,因为您可能需要缩小的文件系统是/var – 文件系统必须被卸载才能缩小(不像成长,这是一个在线操作),所以您需要从恢复光盘启动这样做。 (也可以在单用户模式下使用。)

程序:

 # Make sure /var is not mounted umount /var # Resize ext3 filesystem resize2fs /dev/data/var <newsize> # Resize LV lvreduce -L <newsize> /dev/data/var 

一旦完成,我还会运行一个卷的fsck ,以确保文件系统中没有错误。

确保你考虑到LV的大小必须大于文件系统的大小 – 在你的情况下至less有4MB的大小,因为这是物理盘区的大小。

阅读resize2fslvreduce手册页来了解规格说明 – 特别是lvreduce -L

Linux逻辑卷pipe理器(LVM)基于HP-UX LVM – 基于Veritas VxVM。

Linux LVM和HP-UX LVM之间的一个重要区别是,Linux中的快照需要预先configuration的逻辑卷充当快照数据的存储库。

根据你的vgdisplay ,你没有剩余的空间:

  Free PE / Size 0 / 0 

你确实需要减less音量。 大多数文件系统不支持缩小 – 那些不build议这种做法。 显然, XFS和JFS不会减less(虽然XFS文件系统可以变得更大)。 文件系统ext2fs支持缩小,但这不是一个推荐的做法:你确定你不会丢失一些数据吗?

最佳做法是做到以下几点:

  1. 备份卷以缩小 – 使用rsyncdumpvariables。
  2. 启动到救援磁盘 – 一个支持LVM的磁盘。
  3. 使用lvreduce减less逻辑卷的大小。
  4. 使用mkfs来创build一个新的文件系统。
  5. 使用dumprsync从备份重新创build文件系统。
  6. 重启。

这是一个侵入性的过程, 需要备份! 如果你没有备份(检查他们是好的!),那么你失去数据!