- 新增 15G 的磁盘,并将其做成 LVM 卷,VG 名称为 snapvg,LV 名称为
- snaplv 大小为 5G,挂载至/snapdata 目录下
- 写入文本的文件数据至/snapdata 目录下,名称为 cs.txt,内容为“this is test!”
- 对 LV 卷进行快照,要求创建的逻辑卷快照为只读,快照名称为snapsrc
- 删除 cs.txt 文件,将快照挂载至/snap 目录下,进行文件数据的恢复
一、添加一块15G的硬盘
[root@storagesrv /]# echo "- - - " > /sys/class/scsi_host/host0/scan
[root@storagesrv /]# echo "- - - " > /sys/class/scsi_host/host1/scan
[root@storagesrv /]# echo "- - - " > /sys/class/scsi_host/host2/scan
[root@storagesrv /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─vdodisk 253:2 0 150G 0 vdo /vdodata
sdc 8:32 0 15G 0 disk
sr0 11:0 1 9.5G 0 rom /mnt
二、创建vg卷组
[root@storagesrv /]# vgcreate snapvg /dev/sdc
Physical volume "/dev/sdc" successfully created.
Volume group "snapvg" successfully created
三、创建逻辑卷组lv
[root@storagesrv /]# lvcreate -L +5G -n snaplv snapvg
Logical volume "snaplv" created.
四、逻辑卷格式化
[root@storagesrv /]# mkfs.ext4 /dev/sn
snapshot snapvg/ snd/
[root@storagesrv /]# mkfs.ext4 /dev/snapvg/snaplv
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
五、挂载
[root@storagesrv /]# mkdir /snapdata
[root@storagesrv /]# mount /dev/snapvg/snaplv /snapdata/
[root@storagesrv /]# df -Th
/dev/mapper/snapvg-snaplv ext4 4.8G 20M 4.6G 1% /snapdata
六、测试LV卷快照和恢复
[root@storagesrv /]# echo "this is test! " >> /snapdata/cs.txt
[root@storagesrv /]# lvcreate -L 64M -s -p r -n snapsrc /dev/snapvg/snaplv
Logical volume "snapsrc" created.
[root@storagesrv /# mkdir /snap
[root@storagesrv /# rm /snapdata/cs.txt
[root@storagesrv /# mount /dev/snapvg/snapsrc /snap
[root@storagesrv /# tail /snap/cs.txt
this is test!