部署
第一步: 虚拟机创建多块硬盘,这里我有四块硬盘,除了sda,其他的三块都是用于本次测试
- 硬盘
- sda 40G
- sdb 8G
- sdc 10G
- sdd 9G
#这里我们可以用 fdisk -l 命令查看硬盘信息
shell > fdisk -l
磁盘 /dev/sdc:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa6f2461a
设备 Boot Start End Blocks Id System
磁盘 /dev/sdd:9663 MB, 9663676416 字节,18874368 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbbcc17a9
设备 Boot Start End Blocks Id System
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a05f8
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 83886079 41942016 83 Linux
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7e3acb91
设备 Boot Start End Blocks Id System
# 也可以 使用 lsblk 简单查看硬盘
shell > lsblk
sda 8:0 0 40G 0 disk
└─sda1 8:1 0 40G 0 part /
sdb 8:16 0 8G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 9G 0 disk
# 可以看到除了硬盘sda,其他的都是新的,还未进行分区.
第二步: 安装所需要的软件
dnf install -y lvm2 dmsetup mdadm reiserfsprogs xfsprogs
第三步: 对三块硬盘进行分区
- sdb 总大小8G,划分一个4G分区
- sdc 总大小10G,划分一个5G分区
- sdd 总大小9G,划分一个3G分区
shell > fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):
shell > n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
shell > p
Using default response p
分区号 (1-4,默认 1):
shell > 1
起始 扇区 (2048-16777215,默认为 2048):
shell > <ENTER>(这里是直接敲回车键,使用默认的!)
Last 扇区, +扇区 or +size{K,M,G} (2048-16777215,默认为 16777215):
shell > +4G
分区 1 已设置为 Linux 类型,大小设为 4 GiB
shell > t
已选择分区 1
Hex 代码(输入 L 列出所有代码):
shell > L
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / 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 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 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 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):
shell > 8e
#已将分区“Linux”的类型更改为“Linux LVM”
shell > w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
# 省去交互反馈, 将sdc与sdd硬盘按照计划分区
# sdc 分5G
shell > fdisk /dev/sdc
shell > n
shell > p
shell > 1
shell > <ENTER>(这里是直接敲回车键,使用默认的!)
shell > +5G
shell > t
shell > L
shell > 8e
shell > w
# sdd 分3G
shell > fdisk /dev/sdd
shell > n
shell > p
shell > 1
shell > <ENTER>(这里是直接敲回车键,使用默认的!)
shell > +3G
shell > t
shell > L
shell > 8e
shell > w
# 查看分区情况
shell > lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
└─sda1 8:1 0 40G 0 part /
sdb 8:16 0 8G 0 disk
└─sdb1 8:17 0 4G 0 part
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 5G 0 part
sdd 8:48 0 9G 0 disk
└─sdd1 8:49 0 3G 0 part
第四步: 将分区标记成LVM物理卷
# 标记
shell > pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdd1" successfully created.
# 查看
shell > pvdisplay
"/dev/sdb1" is a new physical volume of "4.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 4.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID UuXQ0q-dIgZ-z4zf-dOgw-63TT-aeak-XWiKc0
"/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 0XhL6F-S1Bt-5sao-1Jts-dIw4-hc7g-XMLIBA
"/dev/sdd1" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID IhAYSM-yYlK-0gUL-IiKi-mLFu-3mHp-NWi9kJ
第五步: 将分区添加到一个一个卷组,这里我起名web
# 创建卷组
shell > vgcreate web /dev/sdb1 /dev/sdc1 /dev/sdd1
Volume group "web" successfully created
# 查看卷组详情
shell > vgdisplay
--- Volume group ---
VG Name web
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <11.99 GiB
PE Size 4.00 MiB
Total PE 3069
Alloc PE / Size 0 / 0
Free PE / Size 3069 / <11.99 GiB
VG UUID 8QoSZQ-Juqz-50f7-XOnW-uSzL-X8Cr-oapIfN
# 查看卷组
shell > vgscan
Reading volume groups from cache.
Found volume group "web" using metadata type lvm2
# 重命名卷组(非主线学习,实验后请还原,如无法还原请勿执行)
shell > vgrename web web2
Volume group "web" successfully renamed to "web2"
# 删除卷组(非主线学习,实验后请还原,如无法还原请勿执行)
shell > vgremove web2
Volume group "web2" successfully removed
# 增加分区至卷组(非主线学习,实验后请还原,如无法还原请勿执行)
shell > vgextend web2 /dev/sdctest01
Volume group "web2" successfully extended
# 查看卷组与分区的关系
shell > pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 web lvm2 a-- <4.00g <4.00g
/dev/sdc1 web lvm2 a-- <5.00g <5.00g
/dev/sdd1 web lvm2 a-- <3.00g <3.00g
# 查看简要信息
shell > vgs
VG #PV #LV #SN Attr VSize VFree
web 3 0 0 wz--n- <11.99g <11.99g
第六步: 创建逻辑卷,来源 web卷组
- 3G大小 test1 逻辑卷
- 3G大小 test2 逻辑卷
- 剩余大小 test3 逻辑卷
# 创建逻辑卷
shell > lvcreate -L 3G -n test1 web
Logical volume "test1" created.
shell > lvcreate -L 3G -n test2 web
Logical volume "test2" created.
shell > lvcreate -l 100%FREE -n test3 web
Logical volume "test3" created.
# 查看逻辑卷
shell > vgs -o +lv_size,lv_name
VG #PV #LV #SN Attr VSize VFree LSize LV
web 3 3 0 wz--n- <11.99g 0 3.00g test1
web 3 3 0 wz--n- <11.99g 0 3.00g test2
web 3 3 0 wz--n- <11.99g 0 <5.99g test3
# 删除逻辑卷轴(非主线学习,实验后请还原,如无法还原请勿执行)
shell > lvremove /dev/web/test3
Do you really want to remove active logical volume web/test3? [y/n]: y
Logical volume "test3" successfully removed
# 将test3逻辑卷大小减小到2G(非主线学习,实验后请还原,如无法还原请勿执行)
shell > lvreduce -L2G /dev/web/test3
WARNING: Reducing active logical volume to 2.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce web/test3? [y/n]: y
Size of logical volume web/test3 changed from <5.99 GiB (1533 extents) to 2.00 GiB (512 extents).
Logical volume web/test3 successfully resized.
# 将test2逻辑卷大小减小到4G(非主线学习,实验后请还原,如无法还原请勿执行)
shell > lvextend -L4G /dev/web/test2
Size of logical volume web/test2 changed from 3.00 GiB (768 extents) to 4.00 GiB (1024 extents).
Logical volume web/test2 successfully resized.
# 将test2逻辑卷大小增加到所有VG大小(非主线学习,实验后请还原,如无法还原请勿执行)
shell > lvextend -l +100%FREE /dev/web/test2
Size of logical volume web/test2 changed from <4 GiB (5629 extents) to 12 GiB (7164 extents).
Logical volume web/test2 successfully resized.
第七步: 在逻辑卷上创建文件系统,并且挂载至 var下
- test1 -> ext3
- test2 -> xfs
- test3 -> btrfs
# 创建文件系统
shell > mkfs.ext3 /dev/web/test1
shell > mkfs.xfs /dev/web/test2
shell > mkfs.btrfs /dev/web/test3
# 创建挂载目录
shell > mkdir /var/test1 /var/test2 /var/test3
# 临时挂载
shell > mount /dev/web/test1 /var/test1
shell > mount /dev/web/test2 /var/test2
shell > mount /dev/web/test3 /var/test3
# 查看
shell > df -h
/dev/mapper/web-test1 2.9G 4.6M 2.8G 1% /var/test1
/dev/mapper/web-test2 3.0G 33M 3.0G 2% /var/test2
/dev/mapper/web-test3 6.0G 17M 5.4G 1% /var/test3
# 永久挂载
shell > vim /etc/fstab
# 追加以下代码
/dev/web/test1 /var/test1 ext3 rw,noatime 0 0
/dev/web/test2 /var/test2 xfs rw,noatime 0 0
/dev/web/test3 /var/test3 btrfs rw,noatime 0 0