1、分区规划
扇区的大小:默认 512 字节
• 识别硬盘 => 分区规划 => 格式化 => 挂载使用
GPT分区模式:最大支持容量为18EB空间
MBR(又叫msdos)分区模式 最大2.2TB空间
- – 三种分区类型:主分区 扩展分区 逻辑分区
- – 1~4个主分区,或者 3个主分区+1个扩展分区(n个逻辑分区)
- – 最大支持容量为 2.2TB 的磁盘
- – 扩展分区不能格式化
- – 理论上:最多有4个主分区
/dev/sdc5 表示 scsi类型的磁盘,第三块,第一个逻辑分区
1-1、查看本机识别硬盘
[root@server0 ~]# lsblk----------list block
1-2、分区指令 fdisk
[root@server0 /]# fdisk /dev/vdb
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
d 删除分区
w 保存并退出
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdb[1-2]
1-3、格式化文件系统
• mkfs 工具集
– mkfs.ext3 分区设备路径
– mkfs.ext4 分区设备路径
– mkfs.xfs 分区设备路径
– mkfs.vfat -F 32 分区设备路径
[root@server0 ~]# blkid /dev/vdb1 ----------查看分区UUID及文件系统信息
[root@server0 ~]# mkfs.ext4 /dev/vdb1
[root@server0 ~]# blkid /dev/vdb1
[root@server0 ~]# blkid /dev/vdb2 #查看分区UUID及文件系统信息
[root@server0 ~]# mkfs.xfs /dev/vdb2
[root@server0 ~]# blkid /dev/vdb2
[root@server0 ~]# mkfs.xfs /dev/vdb2
mkfs.xfs: /dev/vdb2 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
-f :强制格式化
1-4、挂载使用
[root@server0 ~]# mount /dev/vdb1 /mypart1
mount: 挂载点 /mypart1 不存在
[root@server0 ~]# mkdir /mypart1
[root@server0 ~]# mkdir /mypart2
[root@server0 ~]# mount /dev/vdb1 /mypart1
[root@server0 ~]# mount /dev/vdb2 /mypart2
[root@server0 ~]# df -h #查看所有 正在挂载使用 的分区的信息
################################################################
综合分区:
请划分 3个主分区,分别为2G
划分 2个逻辑分区,分别 为 1G
[root@server0 ~]# fdisk /dev/vdb
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
p 查看分区表
n 创建新的分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>结束+1G
n 创建新的分区----->起始回车------>结束+1G
d 删除分区
w 保存并退出
[root@server0 ~]# partprobe #刷新 新的分区
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdb[1-6]
##################################################################
总结分区:
1.查看识别硬盘 ----------- lsblk
2.划分分区 ---------fdisk
3.刷新新的分区 --------partprobe
4.格式化 -----------mkfs.ext4
5.查看文件系统类型----------blkid
6.挂载使用 --------- mount
7.查看挂载使用 -------- df -h
8.完成开机自动挂载---------/etc/fstab
9.刷新挂载配置 -----------mount -a
#################################################################
开机自动挂载分区
• 配置文件 /etc/fstab 的记录格式
– 设备路径 挂载点 文件类型 参数类型 备份标记 检测顺序
补充:vim 命令模式 按 o 另起一行进入 插入模式
[root@server0 ~]# blkid /dev/vdb1
[root@server0 ~]# vim /etc/fstab
/dev/vdb1 /mypart1 ext4 defaults 0 0
[root@server0 ~]# mount -a ----------检测/etc/fstab文件格式,并尝试挂载设备
[root@server0 ~]# df -h
################################################################3
对于/dev/vdc进行综合分区:
划分3个主分区,分别为10G
划分2个逻辑分区,分别为10G
[root@server0 ~]# fdisk /dev/vdc
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G #第一个主分区
p 查看分区表
.......
n 创建新的分区(扩展分区)
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>结束+10G #划分第一个逻辑分区
n 创建新的分区----->起始回车------>结束+10G #划分第二个逻辑分区
d 删除分区
w 保存并退出
[root@server0 ~]# lsblk #查看分区情况
################################################################
2、LVM逻辑卷
作用: 1. 可以整合分散的空间
2. 逻辑卷可以容量扩大
将众多的物理卷(pv),组成卷组(vg),再从卷组中划分逻辑卷(lv),再去格式化逻辑卷,进行挂载
2-1、制作逻辑卷
1.创建卷组 : vgcreate 卷组的名字 组成卷组的成员
[root@server0 ~]# vgcreate myvg /dev/vdc1 /dev/vdc2
[root@server0 ~]# pvs #显示物理卷的信息
[root@server0 ~]# vgs #显示卷组的信息
2.创建逻辑卷 : lvcreate -n 逻辑卷的名字 -L 大小 卷组的名字
[root@server0 ~]# lvcreate -n vo -L 16G myvg
[root@server0 ~]# lvs #显示逻辑卷的信息
[root@server0 ~]# vgs #显示卷组的信息
3.使用逻辑卷
[root@server0 ~]# mkfs.ext4 /dev/myvg/vo
[root@server0 ~]# blkid /dev/myvg/vo
[root@server0 ~]# mkdir /lvm
[root@server0 ~]# vim /etc/fstab
/dev/myvg/vo /lvm ext4 defaults 0 0
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
##############################################################
2-2、逻辑卷的扩大,支持线上操作
一、卷组有足够的剩余空间
1.空间的扩展
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 18G /dev/myvg/vo
[root@server0 ~]# lvs
2.文件系统的扩展
resize2fs : ext4文件系统扩展命令
xfs_growfs : xfs文件系统扩展命令
[root@server0 ~]# df -h
[root@server0 ~]# resize2fs /dev/myvg/vo
[root@server0 ~]# df -h
二、卷组没有足够的剩余空间
1.扩展卷组空间
[root@server0 ~]# vgextend myvg /dev/vdc3
[root@server0 ~]# vgs
2.空间的扩展
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 25G /dev/myvg/vo
[root@server0 ~]# lvs
3.文件系统的扩展
resize2fs : ext4文件系统扩展命令
xfs_growfs : xfs文件系统扩展命令
[root@server0 ~]# df -h
[root@server0 ~]# resize2fs /dev/myvg/vo
[root@server0 ~]# df -h
##################################################################
2-3、逻辑卷的缩小,有风险
1.先缩减文件系统的大小,再缩减空间的大小
[root@server0 ~]# resize2fs /dev/myvg/vo 10G
[root@server0 ~]# umount /lvm/
[root@server0 ~]# resize2fs /dev/myvg/vo 10G
[root@server0 ~]# e2fsck -f /dev/myvg/vo
[root@server0 ~]# resize2fs /dev/myvg/vo 10G
[root@server0 ~]# lvreduce -L 10G /dev/myvg/vo
WARNING: Reducing active logical volume to 10.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vo? [y/n]: y
[root@server0 ~]# df -h
ext4文件系统可以缩减
xfs文件系统不支持缩减
##################################################################
2-4、PE:卷组划分空间的单位
• 创建卷组的时候设置PE大小
– vgcreate -s PE大小 卷组名 空闲分区...
– vgchange -s PE大小 卷组名
• 创建逻辑卷的时候指定PE个数
– lvcreate -l PE个数 -n 逻辑卷名 卷组名-----------注意此处为小 L
---[root@server0 ~]# vgdisplay myvg
[root@server0 ~]# vgchange -s 1M myvg
请划分一个逻辑卷名字lvtest01,大小为80个PE的总和
[root@server0 ~]# lvcreate -l 80 -n lvtest01 myvg
[root@server0 ~]# lvs
###################################################################
2-5、逻辑卷的删除
[root@server0 ~]# lvremove /dev/myvg/vo ------------直接删除会报下面错误
Logical volume myvg/vo contains a filesystem in use.
[root@server0 ~]# umount /lvm---------先卸载
[root@server0 ~]# lvremove /dev/myvg/vo ------------再删除
Do you really want to remove active logical volume vo? [y/n]:y
[root@server0 ~]# lvs----------查看是否已经删除
[root@server0 ~]# vgremove myvg--------如有需要可以这样删除卷组
[root@server0 ~]# vgs
[root@server0 ~]# pvremove /dev/vdc[1-3]-----如有需要可以这样删物理卷
[root@server0 ~]# pvs
3、parted 分区模式
[root@localhost ~]# lsblk-------查看一下有哪些硬盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 50G 0 disk
vdb 252:16 0 20G 0 disk
[root@localhost ~]# parted /dev/vdb---------parted 分区
GNU Parted 3.1
使用 /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p -------输出分区信息
错误: /dev/vdb: unrecognised disk label
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown-------默认分区标记未定义
Disk Flags:
(parted) mktable GPT-----指定分区模式为GPT
(parted) p------输出分区信息
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt-----------------分区标记已经定义为了GPT
Disk Flags:
(parted) mkpart ----------开始分区
分区名称? []?
文件系统类型? [ext2]?
起始点? 1M
结束点? 2G
(parted) p ------输出分区信息
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 2000MB 1999MB
(parted) mkpart ----------进行分区
分区名称? []?
文件系统类型? [ext2]?
起始点? 2G
结束点? 5G
(parted) P------输出分区信息
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 2000MB 1999MB
2 2000MB 5000MB 3000MB
(parted) rm 2-------------------删除分区(跟Number号)
(parted) p-----输出分区信息
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 2000MB 1999MB
(parted) quit -------保存并退出
信息: You may need to update /etc/fstab.
[root@localhost ~]#
总结:
- parted
- lsblk-------查看一下有哪些硬盘
- parted /dev/vdb---------parted 分区
- mktable GPT-----指定分区模式为GPT
- mkpart ----------进行分区
- p ------输出分区信息
- rm 2-------------------删除分区(跟Number号)
- quit -------保存并退出
- fdisk
- fidsk /dev/vdb
- p 查看分区表
- n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G #第一个主分区
- d 删除分区
- w 保存并退出
1 案例1:硬盘分区及格式化
1.1 问题
本例要求熟悉硬盘分区结构,使用fdisk分区工具在磁盘 /dev/vdb 上按以下要求建立分区:
1. 采用默认的 msdos 分区模式
2. 第1个分区 /dev/vdb1 的大小为 200MiB
3. 第2个分区 /dev/vdb2 的大小为 2000MiB
4. 第3个分区 /dev/vdb3 的大小为 1000MiB
完成分区后,能够配置开机自动挂载 /dev/vdb2 分区:
1. 文件系统类型为 EXT4
2. 将其挂载到 /mnt/part2 目录
1.2 方案
fdisk分区工具用来建立msdos分区方案,其交互模式中的主要指令如下:
· m:列出指令帮助
· p:查看当前的分区表信息
· n:新建分区
· d:删除分区
· t:更改分区标识
· q:放弃分区更改并退出
· w:保存对分区表所做的更改
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:新建分区表
1)打开fdisk工具,操作磁盘/dev/vdb
1. [root@server0 ~]# fdisk /dev/vdb
2. Welcome to fdisk (util-linux 2.23.2).
3.
4. Changes will remain in memory only, until you decide to write them.
5. Be careful before using the write command.
6.
7. Device does not contain a recognized partition table
8. Building a new DOS disklabel with disk identifier 0x9ac1bc10.
9.
10. Command (m for help): //交互操作提示信息
2)新建第1个分区/dev/vdb1
1. Command (m for help): n //新建分区
2. Partition type:
3. p primary (0 primary, 0 extended, 4 free)
4. e extended
5. Select (default p): p //类型为p(主分区)
6. Partition number (1-4, default 1): 1 //分区编号1
7. First sector (2048-20971519, default 2048): //起始位置默认
8. Using default value 2048
9. Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M
10. Partition 1 of type Linux and of size 200 MiB is set //结束位置+200MiB大小
11.
12. Command (m for help): p //确认当前分区表
13. .. ..
14. Device Boot Start End Blocks Id System
15. /dev/vdb1 2048 411647 204800 83 Linux
3)新建第2个分区/dev/vdb2
1. Command (m for help): n
2. Partition type:
3. p primary (1 primary, 0 extended, 3 free)
4. e extended
5. Select (default p): p //类型为p(主分区)
6. Partition number (2-4, default 2): 2 //分区编号2
7. First sector (411648-20971519, default 411648): //起始位置默认
8. Using default value 411648
9. Last sector, +sectors or +size{K,M,G} (411648-20971519, default 20971519): +2000M
10. Partition 2 of type Linux and of size 2 GiB is set //结束位置+2000MiB大小
11.
12. Command (m for help): p //确认当前分区表
13. .. ..
14. Device Boot Start End Blocks Id System
15. /dev/vdb1 2048 411647 204800 83 Linux
16. /dev/vdb2 411648 4507647 2048000 83 Linux
4)新建第3个分区/dev/vdb3
1. Command (m for help): n
2. Partition type:
3. p primary (2 primary, 0 extended, 2 free)
4. e extended
5. Select (default p): p
6. Partition number (3,4, default 3): 3
7. First sector (4507648-20971519, default 4507648):
8. Using default value 4507648
9. Last sector, +sectors or +size{K,M,G} (4507648-20971519, default 20971519): +1000M
10. Partition 3 of type Linux and of size 1000 MiB is set
11.
12. Command (m for help): p //确认当前分区表
13. .. ..
14. Device Boot Start End Blocks Id System
15. /dev/vdb1 2048 411647 204800 83 Linux
16. /dev/vdb2 411648 4507647 2048000 83 Linux
17. /dev/vdb3 4507648 6555647 1024000 83 Linux
5)调整分区类型标识(可选)
将/dev/vdb1的类型(默认为83,表示EXT2/3/4分区)修改为8e(LVM设备):
1. Command (m for help): t //修改分区类型标识
2. Partition number (1-3, default 3): 1 //指定第1个分区
3. Hex code (type L to list all codes): 8e //类型改为8e
4. Changed type of partition 'Linux' to 'Linux LVM'
5.
6. Command (m for help): p //确认当前分区表
7. .. ..
8. Device Boot Start End Blocks Id System
9. /dev/vdb1 2048 411647 204800 8e Linux LVM
10. /dev/vdb2 411648 4507647 2048000 83 Linux
11. /dev/vdb3 4507648 6555647 1024000 83 Linux
6)保存分区更改,退出fdisk分区工具
1. Command (m for help): w //保存并退出
2. The partition table has been altered!
3.
4. Calling ioctl() to re-read partition table.
5. Syncing disks.
6)刷新分区表
1. [root@server0 ~]# partprobe /dev/vdb //重新检测磁盘分区
2. //或者
3. [root@server0 ~]# reboot //对已使用中磁盘的分区调整,应该重启一次
4. .. ..
步骤二:格式化及挂载分区
1)将分区/dev/vdb2格式化为EXT4文件系统
1. [root@server0 ~]# mkfs.ext4 /dev/vdb2
2. .. ..
3. Allocating group tables: done
4. Writing inode tables: done
5. Creating journal (8192 blocks): done
6. Writing superblocks and filesystem accounting information: done
2)配置开机自动挂载
1. [root@server0 ~]# vim /etc/fstab
2. .. ..
3. /dev/vdb2 /mnt/part2 ext4 defaults 0 0
3)创建挂载点,并验证挂载配置
1. [root@server0 ~]# mkdir /mnt/part2 //创建挂载点
2. [root@server0 ~]# mount -a //挂载fstab中的可用设备
3. [root@server0 ~]# df -hT /mnt/part2/ //检查文档所在的文件系统及设备
4. Filesystem Type Size Used Avail Use% Mounted on
5. /dev/vdb2 ext4 1.9G 5.9M 1.8G 1% /mnt/part2
2.1 问题
本例要求沿用前一天案例,使用分区 /dev/vdb1 构建 LVM 存储,相关要求如下:
1. 新建一个名为 systemvg 的卷组
2. 在此卷组中创建一个名为 vo 的逻辑卷,大小为180MiB
3. 将逻辑卷 vo 格式化为 EXT4 文件系统
4. 将逻辑卷 vo 挂载到 /vo 目录,并在此目录下建立一个测试文件 votest.txt,内容为“I AM KING.”
2.2 方案
LVM创建工具的基本用法:
1. vgcreate 卷组名 物理设备.. ..
2. lvcreate -L 大小 -n 逻辑卷名 卷组名
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:创建卷组
1)新建名为systemvg的卷组
1. [root@server0 ~]# vgcreate systemvg /dev/vdb1
2. Physical volume "/dev/vdb1" successfully created
3. Volume group "systemvg" successfully created
2)确认结果
1. [root@server0 ~]# vgscan
2. Reading all physical volumes. This may take a while...
3. Found volume group "systemvg" using metadata type lvm2
步骤二:创建逻辑卷
1)新建名为vo的逻辑卷
1. [root@server0 ~]# lvcreate -L 180MiB -n vo systemvg
2. Logical volume "vo" created
2)确认结果
1. [root@server0 ~]# lvscan
2. ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
步骤三:格式化及挂载使用
1)格式化逻辑卷/dev/systemvg/vo
1. [root@server0 ~]# mkfs.ext4 /dev/systemvg/vo
2. .. ..
3. Allocating group tables: done
4. Writing inode tables: done
5. Creating journal (4096 blocks): done
6. Writing superblocks and filesystem accounting information: done
2)挂载逻辑卷/dev/systemvg/vo
1. [root@server0 ~]# mkdir /vo //创建挂载点
2. [root@server0 ~]# mount /dev/systemvg/vo /vo //挂载
3. [root@server0 ~]# df -hT /vo/ //检查结果
4. Filesystem Type Size Used Avail Use% Mounted on
5. /dev/mapper/systemvg-vo ext4 171M 1.6M 157M 1% /vo
3)访问逻辑卷/dev/systemvg/vo
1. [root@server0 ~]# cat /vo/votest.txt
2. I AM KING.
3.1 问题
本例要求沿用前一天案例,对磁盘/dev/vdb的分区表进行调整,要求如下:不更改原有分区,利用剩余空间新增三个分区,大小依次为:500MiB、2000MiB、512MiB
然后再基于刚建立的 2000MiB 分区构建新的 LVM 存储:
1. 新的逻辑卷命名为 database,大小为50个物理扩展单元(Physical Extent),属于 datastore 卷组
2. 在 datastore 卷组中的所有逻辑卷,其物理扩展单元(Physical Extent)的大小为16MiB
3. 使用 EXT3 文件系统对逻辑卷 database 格式化,此逻辑卷应该在开机时自动挂载到 /mnt/database 目录
3.2 方案
创建卷组时,可以通过-s选项指定PE的大小。
在给新建的逻辑卷分配空间时,空间大小只能是PE大小的倍数。
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:调整现有磁盘分区
1)新建扩展分区(使用剩余可用空间)
1. [root@server0 ~]# fdisk /dev/vdb
2.
3. Command (m for help): p //确认原有分区表
4. .. ..
5. Device Boot Start End Blocks Id System
6. /dev/vdb1 2048 411647 204800 8e Linux LVM
7. /dev/vdb2 411648 4507647 2048000 83 Linux
8. /dev/vdb3 4507648 6555647 1024000 83 Linux
9.
10. Command (m for help): n //新建分区
11. Partition type:
12. p primary (3 primary, 0 extended, 1 free)
13. e extended
14. Select (default e): e //类型指定为e(扩展分区)
15. Selected partition 4 //只一个可用编号,自动选取
16. First sector (6555648-20971519, default 6555648): //起始位置默认
17. Using default value 6555648
18. Last sector, +sectors or +size{K,M,G} (6555648-20971519, default 20971519):
19. Using default value 20971519 //结束位置默认
20. Partition 4 of type Extended and of size 6.9 GiB is set
21.
22. Command (m for help): p
23. .. ..
24. Device Boot Start End Blocks Id System
25. /dev/vdb1 2048 411647 204800 8e Linux LVM
26. /dev/vdb2 411648 4507647 2048000 83 Linux
27. /dev/vdb3 4507648 6555647 1024000 83 Linux
28. /dev/vdb4 6555648 20971519 7207936 5 Extended
2)在扩展分区中新建3个逻辑分区
创建第1个逻辑卷(由于主分区编号已用完,分区类型自动选l逻辑分区):
1. Command (m for help): n
2. All primary partitions are in use
3. Adding logical partition 5 //分区编号5
4. First sector (6557696-20971519, default 6557696): //起始位置默认
5. Using default value 6557696
6. Last sector, +sectors or +size{K,M,G} (6557696-20971519, default 20971519): +500M
7. //结束位置默认
8. Partition 5 of type Linux and of size 500 MiB is set
创建第2个逻辑卷:
1. Command (m for help): n
2. All primary partitions are in use
3. Adding logical partition 6 //分区编号6
4. First sector (7583744-20971519, default 7583744): //起始位置默认
5. Using default value 7583744
6. Last sector, +sectors or +size{K,M,G} (7583744-20971519, default 20971519): +2000M
7. //结束位置默认
8. Partition 6 of type Linux and of size 2 GiB is set
创建第3个逻辑卷:
1. Command (m for help): n
2. All primary partitions are in use
3. Adding logical partition 7 //分区编号7
4. First sector (11681792-20971519, default 11681792): //起始位置默认
5. Using default value 11681792
6. Last sector, +sectors or +size{K,M,G} (11681792-20971519, default 20971519): +512M
7. //结束位置默认
8. Partition 7 of type Linux and of size 512 MiB is set
根据预计的用途调整分区类型(可选):
1. Command (m for help): t //修改
2. Partition number (1-7, default 7): 5 //第5个分区
3. Hex code (type L to list all codes): 8e //类型为8e(LVM)
4. Changed type of partition 'Linux' to 'Linux LVM'
5.
6. Command (m for help): t //修改
7. Partition number (1-7, default 7): 6 //第6个分区
8. Hex code (type L to list all codes): 8e //类型为8e(LVM)
9. Changed type of partition 'Linux' to 'Linux LVM'
10.
11. Command (m for help): t //修改
12. Partition number (1-7, default 7): 7 //第7个分区
13. Hex code (type L to list all codes): 82 //类型为82(交换分区)
14. Changed type of partition 'Linux' to 'Linux swap / Solaris'
确认分区结果并保存:
1. Command (m for help): p
2. .. ..
3. Device Boot Start End Blocks Id System
4. /dev/vdb1 2048 411647 204800 8e Linux LVM
5. /dev/vdb2 411648 4507647 2048000 83 Linux
6. /dev/vdb3 4507648 6555647 1024000 83 Linux
7. /dev/vdb4 6555648 20971519 7207936 5 Extended
8. /dev/vdb5 6557696 7581695 512000 8e Linux LVM
9. /dev/vdb6 7583744 11679743 2048000 8e Linux LVM
10. /dev/vdb7 11681792 12730367 524288 82 Linux swap / Solaris
11.
12. Command (m for help): w //保存退出
13. The partition table has been altered!
14.
15. Calling ioctl() to re-read partition table.
16.
17. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
18. The kernel still uses the old table. The new table will be used at
19. the next reboot or after you run partprobe(8) or kpartx(8)
20. Syncing disks. //提示重启
3)刷新分区表
1. [root@server0 ~]# partprobe /dev/vdb
2. [root@server0 ~]# reboot
步骤二:新建卷组、逻辑卷
1)新建卷组datastore,指定PE大小为16MiB
1. [root@server0 ~]# vgcreate -s 16MiB datastore /dev/vdb6
2. Volume group "datastore" successfully created
3. [root@server0 ~]# vgscan //确认新建的卷组
4. Reading all physical volumes. This may take a while...
5. Found volume group "systemvg" using metadata type lvm2
6. Found volume group "datastore" using metadata type lvm2
2)新建逻辑卷database,大小设置为50个PE
1. [root@server0 ~]# lvcreate -l 50 -n database datastore
2. Logical volume "database" created
3. [root@server0 ~]# lvscan //确认新建的逻辑卷
4. ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
5. ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
步骤三:格式化及使用逻辑卷
1)格式化逻辑卷/dev/datastore/database
1. [root@server0 ~]# mkfs.ext3 /dev/datastore/database
2. .. ..
3. Allocating group tables: done
4. Writing inode tables: done
5. Creating journal (4096 blocks): done
6. Writing superblocks and filesystem accounting information: done
2)配置开机挂载
1. [root@server0 ~]# mkdir /mnt/database //创建挂载点
2. [root@server0 ~]# vim /etc/fstab
3. .. ..
4. /dev/datastore/database /mnt/database ext3 defaults 0 0
3)验证挂载配置
1. [root@server0 ~]# mount -a
2. [root@server0 ~]# df -hT /mnt/database/ //确认挂载点设备
3. Filesystem Type Size Used Avail Use% Mounted on
4. /dev/mapper/datastore-database ext3 772M 828K 715M 1% /mnt/database
4.1 问题
本例要求沿用练习一,将逻辑卷 vo 的大小调整为 300MiB,要求如下:
1. 原文件系统中的内容必须保持完整
2. 必要时可使用之前准备的分区 /dev/vdb5 来补充空间
3. 注意:分区大小很少能完全符合要求的大小,所以大小在270MiB和300MiB之间都是可以接受的
4.2 方案
对于已经格式化好的逻辑卷,在扩展大小以后,必须通知内核新大小。
如果此逻辑卷上的文件系统是EXT3/EXT4类型,需要使用resize2fs工具;
如果此逻辑卷上的文件系统是XFS类型,需要使用xfs_growfs。
4.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:确认逻辑卷vo的信息
1)找出逻辑卷所在卷组
1. [root@server0 ~]# lvscan
2. ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
3. ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
2)查看该卷组的剩余空间是否可满足扩展需要
1. [root@server0 ~]# vgdisplay systemvg
2. --- Volume group ---
3. VG Name systemvg
4. System ID
5. Format lvm2
6. Metadata Areas 1
7. Metadata Sequence No 2
8. VG Access read/write
9. VG Status resizable
10. MAX LV 0
11. Cur LV 1
12. Open LV 0
13. Max PV 0
14. Cur PV 1
15. Act PV 1
16. VG Size 196.00 MiB //卷组总大小
17. PE Size 4.00 MiB
18. Total PE 49
19. Alloc PE / Size 45 / 180.00 MiB
20. Free PE / Size 4 / 16.00 MiB //剩余空间大小
21. VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN
此例中卷组systemvg的总大小都不够300MiB、剩余空间才16MiB,因此必须先扩展卷组。只有剩余空间足够,才可以直接扩展逻辑卷大小。
步骤二:扩展卷组
1)将提前准备的分区/dev/vdb5添加到卷组systemvg
1. [root@server0 ~]# vgextend systemvg /dev/vdb5
2. Physical volume "/dev/vdb5" successfully created
3. Volume group "systemvg" successfully extended
2)确认卷组新的大小
1. [root@server0 ~]# vgdisplay systemvg
2. --- Volume group ---
3. VG Name systemvg
4. .. ..
5. VG Size 692.00 MiB //总大小已变大
6. PE Size 4.00 MiB
7. Total PE 173
8. Alloc PE / Size 45 / 180.00 MiB
9. Free PE / Size 128 / 512.00 MiB //剩余空间已达512MiB
10. VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN
步骤三:扩展逻辑卷大小
1)将逻辑卷/dev/systemvg/vo的大小调整为300MiB
1. [root@server0 ~]# lvextend -L 300MiB /dev/systemvg/vo
2. Extending logical volume vo to 300.00 MiB
3. Logical volume vo successfully resized
2)确认调整结果
1. [root@server0 ~]# lvscan
2. ACTIVE '/dev/systemvg/vo' [300.00 MiB] inherit
3. ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
3)刷新文件系统大小
确认逻辑卷vo上的文件系统类型:
1. [root@server0 ~]# blkid /dev/systemvg/vo
2. /dev/systemvg/vo: UUID="d4038749-74c3-4963-a267-94675082a48a" TYPE="ext4"
选择合适的工具刷新大小:
1. [root@server0 ~]# resize2fs /dev/systemvg/vo
2. resize2fs 1.42.9 (28-Dec-2013)
3. Resizing the filesystem on /dev/systemvg/vo to 307200 (1k) blocks.
4. The filesystem on /dev/systemvg/vo is now 307200 blocks long.
确认新大小(约等于300MiB):
1. [root@server0 ~]# mount /dev/systemvg/vo /vo/
2. [root@server0 ~]# df -hT /vo
3. Filesystem Type Size Used Avail Use% Mounted on
4. /dev/mapper/systemvg-vo ext4 287M 2.1M 266M 1% /vo