大佬教程收集整理的这篇文章主要介绍了btrfs卷的LVM快照更改已挂载的设备,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
情况:
# mount | grep libvirt /dev/dm-4 on /var/lib/libvirt/images type btrfs (rw,relatime,space_cachE) # ls -l /dev/mapper | grep dm-4 lrwxrwxrwx 1 root root 7 Mär 17 01:18 system-vm_disks -> ../dm-4 # lvcreate -s /dev/system/vm_disks -n vm_BACkup -L 32G Logical volume "vm_BACkup" created # mount | grep libvirt /dev/dm-5 on /var/lib/libvirt/images type btrfs (rw,space_cachE) # ls -l /dev/mapper | grep dm-5 lrwxrwxrwx 1 root root 7 Mär 17 01:18 system-vm_BACkup -> ../dm-5 # mount /dev/system/vm_BACkup /mnt/test # touch /mnt/test/touchME # ls -l /var/lib/libvirt/images/touchME -rw-r--r-- 1 root root 0 Mär 17 01:26 /var/lib/libvirt/images/touchME
当我删除快照时:
# umount /mnt/test # lvremove /dev/system/vm_BACkup Do you really want to remove active logical volume vm_BACkup? [y/n]: y Logical volume "vm_BACkup" successfully removed # mount | grep libvirt /dev/dm-4 on /var/lib/libvirt/images type btrfs (rw,space_cachE) # ls -l /dev/mapper | grep dm-4 lrwxrwxrwx 1 root root 7 Mär 17 01:21 system-vm_disks -> ../dm-4 # ls -l /var/lib/libvirt/images/touchME -rw-r--r-- 1 root root 0 Mär 17 01:26 /var/lib/libvirt/images/touchME
我希望我的快照是一个真正的快照而不是像–bind mount.
我正在使用LVM快照通过rsync将一致的系统状态备份到我们的备份服务器.
我不想出于各种原因使用btrfs快照:
>我想备份vm_disks LV中的每个子卷和每个btrfs快照(我不知道存在多少和哪些快照/子卷)
>我的备份策略不应该依赖于文件系统.理想情况下,在/ var / lib / libvirt / images中更改文件系统时,不需要更改任何其他内容
我的系统:
# uname -a Linux laPTOP 3.12-1-amd64 #1 SMP Debian 3.12.9-1 (2014-02-01) x86_64 GNU/Linux # lvm version LVM version: 2.02.104(2) (2013-11-13) Library version: 1.02.83 (2013-11-13) Driver version: 4.26.0 # btrfs --version Btrfs v3.12
我必须使用至少内核3.9或更新,因为我使用Linux 3.9或更新版本提供的IPv6 NAT功能(是的,我知道你不应该使用NAT与IPv6,但这是另一个故事).
谢谢你的帮助!
编辑:
我使用dd和loop设备做了一些实验.
此行为根本不是LVM特有的.
测试:
# mkfs.btrfs /dev/loop0 [...] # mount /dev/loop0 original # touch original/original_file # ls -l original -rw-r--r-- 1 root root 0 Mar 28 21:42 original_file # dd if=/dev/loop0 of=/dev/loop1 509312+0 records in 509312+0 records out 260767744 bytes (261 MB) copied,1.76431 s,148 MB/s # mount /dev/loop1 clone # touch clone/expected_clone_file # ls -l clone -rw-r--r-- 1 root root 0 Mar 28 21:44 expected_clone_file -rw-r--r-- 1 root root 0 Mar 28 21:42 original_file # ls -l original -rw-r--r-- 1 root root 0 Mar 28 21:44 expected_clone_file -rw-r--r-- 1 root root 0 Mar 28 21:42 original_file # umount clone # umount original # mount /dev/loop1 clone # ls -l clone -rw-r--r-- 1 root root 0 Mar 28 21:42 original_file # umount clone # mount /dev/loop0 original # ls -l original -rw-r--r-- 1 root root 0 Mar 28 21:44 expected_clone_file -rw-r--r-- 1 root root 0 Mar 28 21:42 original_file
因此,每当您尝试使用克隆的btrfs文件系统安装新设备时,最终都会使用旧的已安装设备(但mount的输出中没有任何内容正确指示这一点,正如您在上面的LVM实验中所见).
因此,所有请求最终都使用旧设备.
在卸载原始fs之前无法安装克隆的fs(并且在安装克隆的fs时无法安装原始fs).
我现在的问题是:如何将克隆的btrfs的uuid更改为一些新的未使用的uuid.在那之后,我可以将克隆设备与原始设备一起安装,我怀疑.
以上是大佬教程为你收集整理的btrfs卷的LVM快照更改已挂载的设备全部内容,希望文章能够帮你解决btrfs卷的LVM快照更改已挂载的设备所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。