1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users日录。
(1).首先准备两个硬盘,分别为/dev/sdb,/dev/sdc ,大小分别为40G,30G
(2). 分区的总大小为20G
①将/dev/sdb分割,分出一个15G空间给/dev/sdb1,
[root@localhost ~]#fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1): 1
First sector (2048-83886079, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): +15G
Partition 1 of type Linux and of size 15 GiB is setCommand (m for help): t
Selected partition 1
Hex code (type L to list all codes): L0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
②将/dev/sdc分割,分出一个5G给/dev/sdc1,
[root@localhost ~]#fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-62914559, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559): +5G
Partition 1 of type Linux and of size 5 GiB is setCommand (m for help): T
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
(3).将两个硬盘分区转换为物理卷:
[root@localhost ~]#pvcreate /dev/sdb1 /dev/sdc1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
(4).查看是否两个磁盘变为物理卷:
[root@localhost ~]#pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4863
Free PE 0
Allocated PE 4863
PV UUID riGs4v-wcJr-2qhC-1EpT-2X7c-YpUp-zRnF2n
"/dev/sdc1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID mQGaNx-QxtF-nJaD-2YOo-qPsY-obTR-CD6E9o
"/dev/sdb1" is a new physical volume of "15.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 15.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID sHTOMn-0z50-Sh5X-uGaf-j446-6djV-UoSz7n
(5).创建一个要求PE大小为16MB,名为testvg的VG
[root@localhost ~]#vgcreate -s 16M testvg /dev/sd{b1,c1}
Volume group "testvg" successfully created
(6).查看卷组testvg的信息: vgdisplay 或者 vgs
[root@localhost ~]#vgs
VG #PV #LV #SN Attr VSize VFree
testvg 2 0 0 wz--n- <19.97g <19.97g
(7).在卷组中创建大小为5G的逻辑卷testlv;
[root@localhost /]#lvcreate -n testlv -L 5G testvg
Logical volume "testlv" created.
(8).查看逻辑卷信息:
[root@localhost /]#lvdisplay
--- Logical volume ---
LV Path /dev/testvg/testlv
LV Name testlv
VG Name testvg
LV UUID EAqYc5-RvVG-Gg5w-Mr0K-xqaz-GzOW-ypqXmN
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-09-10 02:08:10 +0800
LV Status a vailable
# open 0
LV Size 5.00 GiB
Current LE 320
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
(9).创建文件系统,并挂载至/users目录
[root@localhost ~]#mkfs.ext4 /dev/testvg/testlv
[root@localhost ~]#mkdir -p /users[root@localhost ~]#mount /dev/testvg/testlv /users
2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录。
(1).创建目录/users/archlinux,并创建用户archlinux,并为用户archlinux设置口令
[root@localhost ~]#useradd -d /users/archlinux archlinux
[root@localhost ~]#getent passwd archlinux
archlinux:x:1032:1032::/users/archlinux:/bin/bash[root@localhost ~]#passwd archlinux
Changing password for user archlinux.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
(2).登录用户archlinux,拷贝/etc/pam.d目录至自己的家目录
[root@localhost ~]#su - archlinux
Last login: Tue Sep 10 19:41:02 CST 2024 on pts/0
[archlinux@localhost ~]$pwd
/users/archlinux
[archlinux@localhost ~]$cp -a /etc/pam.d /users/archlinux[archlinux@localhost ~]$ls /users/archlinux/pam.d/
chfn fingerprint-auth-ac password-auth-ac runuser smtp.postfix sudo-i vlock
chsh login polkit-1 runuser-l smtp.sendmail su-l vmtoolsd
config-util other postlogin smartcard-auth sshd system-auth
crond passwd postlogin-ac smartcard-auth-ac su system-auth-ac
fingerprint-auth password-auth remote smtp sudo systemd-user
3、扩展testlv至7G,要求archlinux用户的文件不能丢失。
(1).首先,查看archlinux用户的文件的总数和总大小:
[root@localhost pam.d]#ll /users/archlinux/pam.d/ | wc -l
33
[root@localhost pam.d ]#du -sh /users/archlinux/pam.d/
108K /users/archlinux/pam.d/
(2).查看逻辑卷所用空间:
[root@localhost ~]#df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 2.2G 15G 13% /
/dev/mapper/testvg-testlv ext4 4.8G 21M 4.6G 1% /users
/dev/sda1 xfs 1014M 151M 864M 15% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /mnt/cdrom
(3).查看卷组的所剩下的空间:
(4).取消挂载,再扩展testlv至7G:
[root@localhost ~]#umount /users
[root@localhost ~]#lvextend -L +2G /dev/testvg/testlv
Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
Logical volume testvg/testlv successfully resized.[root@localhost ~]#lvdisplay
--- Logical volume ---
LV Path /dev/testvg/testlv
LV Name testlv
VG Name testvg
LV UUID EAqYc5-RvVG-Gg5w-Mr0K-xqaz-GzOW-ypqXmN
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-09-10 02:08:10 +0800
LV Status available
# open 0
LV Size 7.00 GiB
Current LE 448
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2[root@localhost ~]#mount -a
[root@localhost ~]#du -sh /users/archlinux/pam.d/
108K /users/archlinux/pam.d/
看到文件总大小为108k,说明文件在逻辑卷扩增下是没有被破坏!!
4.收缩testlv至3G,要求archlinux用户的文件不能丢失
(1).首先需要取消挂载,再检查一下逻辑卷的状况:
[root@localhost ~]#umount /users
[root@localhost ~]#e2fsck -f /dev/testvg/testlv
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/testvg/testlv: 49/327680 files (0.0% non-contiguous), 58494/1310720 blocks
(2).先把testvg卷组的大小收缩至3G,再收缩testlv至3G,在挂载分区
[root@localhost ~]#resize2fs /dev/testvg/testlv 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 786432 blocks long.[root@localhost ~]#lvreduce -L 3G /dev/testvg/testlv
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
Logical volume testvg/testlv successfully resized.[root@localhost ~]#mount -a
(3).lvdisplay 查看卷组属性,在查看挂载文件的大小:
[root@localhost pam.d]#du -sh /users/archlinux/pam.d/
108K /users/archlinux/pam.d/[root@localhost pam.d]#ll | wc -l
33
通过实验可以得知,逻辑卷大小在缩减时,挂载分区中文件的容量大小是 受逻辑卷的分区大小影响的,为了保证挂载分区文件不受被破坏,我们需要通过数据备份起来,以防数据被逻辑卷扩增、缩减的情况下,损坏数据。
5、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能。
(1).查看testlv的使用状况:
[root@localhost ~]#df -hT /dev/mapper/testvg-testlv
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv ext4 2.9G 16M 2.7G 1% /users
(2).在/users/archlinux下创建文件:
[root@localhost ~]#dd if=/dev/urandom of=/users/archlinux/random.py bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 34.0844 s, 31.5 MB/s
(3).创建逻辑卷快照,
[root@localhost ~]# lvcreate -n testlv-snapshot -s -L 1.5G /dev/testvg/testlv
Logical volume "testlv-snapshot" created.[root@localhost ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
testlv testvg owi-aos--- 3.00g
testlv-snapshot testvg swi-a-s--- 1.50g testlv 0.01
(4).lvdisplay查看testlv-snapshot的属性:
(5).先创建/mnt/testlv-snapshot目录,然后挂载至/mnt/testlv-snapshot目录,然后用blkid查看挂载情况,
[root@localhost ~]#mount -o ro /dev/mapper/testvg-testlv--snapshot /mnt/testlv-sanpshot/
[root@localhost ~]#blkid
/dev/mapper/centos-root: UUID="504ff06f-f38e-409a-bfab-3ff045c8cfee" TYPE="xfs"
/dev/sda2: UUID="riGs4v-wcJr-2qhC-1EpT-2X7c-YpUp-zRnF2n" TYPE="LVM2_member"
/dev/sdc1: UUID="mQGaNx-QxtF-nJaD-2YOo-qPsY-obTR-CD6E9o" TYPE="LVM2_member"
/dev/sdb1: UUID="sHTOMn-0z50-Sh5X-uGaf-j446-6djV-UoSz7n" TYPE="LVM2_member"
/dev/sda1: UUID="cdea4c80-2a37-45aa-a05b-6f700505db57" TYPE="xfs"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-swap: UUID="c3f42d31-88d2-447b-bde6-e6a79f3c0607" TYPE="swap"
/dev/mapper/testvg-testlv: UUID="e5d0665c-f61e-4605-925c-5f871ffb0616" TYPE="ext4"
/dev/mapper/testvg-testlv--snapshot: UUID="e5d0665c-f61e-4605-925c-5f871ffb0616" TYPE="ext4"
(6).查看一下快照分区的备份文件,和用户archlinux家目录的文件:
[root@localhost archlinux]#ls /mnt/testlv-sanpshot/archlinux/pam.d/ /mnt/testlv-sanpshot/archlinux/
/mnt/testlv-sanpshot/archlinux/:
pam.d random.py
/mnt/testlv-sanpshot/archlinux/pam.d/:
chfn fingerprint-auth-ac password-auth-ac runuser smtp.postfix sudo-i vlock
chsh login polkit-1 runuser-l smtp.sendmail su-l vmtoolsd
config-util other postlogin smartcard-auth sshd system-auth
crond passwd postlogin-ac smartcard-auth-ac su system-auth-ac
fingerprint-auth password-auth remote smtp sudo systemd-user
[root@localhost archlinux]#ls /users/archlinux/pam.d /users/archlinux/
/users/archlinux/:
pam.d random.py
/users/archlinux/pam.d:
chfn fingerprint-auth-ac password-auth-ac runuser smtp.postfix sudo-i vlock
chsh login polkit-1 runuser-l smtp.sendmail su-l vmtoolsd
config-util other postlogin smartcard-auth sshd system-auth
crond passwd postlogin-ac smartcard-auth-ac su system-auth-ac
fingerprint-auth password-auth remote smtp sudo systemd-user
(7).尝试一下删除快照区下ramdom.py
[root@localhost archlinux]#rm -rf /mnt/testlv-sanpshot/archlinux/random.py
rm: cannot remove ‘/mnt/testlv-sanpshot/archlinux/random.py’: Read-only file system
(8).删除/users/archlinux/pam.d/,然后使用快照方式将其恢复。
[root@localhost archlinux]# cd /users/archlinux/
[root@localhost archlinux]#rm -rf pam.d
[root@localhost archlinux]#ls
random.py[root@localhost ~]#umount /users /mnt/testlv-sanpshot
[root@localhost ~]#lvconvert --merge /dev/testvg/testlv-snapshot
Merging of volume testvg/testlv-snapshot started.
testvg/testlv: Merged: 100.00%[root@localhost ~]#ls /users/archlinux/
pam.d random.py[root@localhost ~]#cd /mnt/testlv-sanpshot/
[root@localhost testlv-sanpshot]#ls
[root@localhost testlv-sanpshot]#
看到pam.d文件恢复,实验就成功实现了,看到快照分区的没有一点点东西,说明逻辑卷实现快照恢复数据后,快照分区的备份数据就被销毁了,不会保存。