扇区 : 512字节
一块硬盘的“艺术”之旅
• 识别硬盘 => 分区规划 => 格式化 => 挂载使用
毛坯楼层 => 打隔断 => 装修 => 入驻
一、识别硬盘
vd: (virtual disk) 虚拟化硬盘
~]# lsblk
NAME SIZE TYPE MOUNTPOINT
vda 10G disk
└─vda1 10G part /
vdb 10G disk
vd: (virtual disk) 虚拟化硬盘
~]# lsblk
NAME SIZE TYPE MOUNTPOINT
vda 10G disk
└─vda1 10G part /
vdb 10G disk
~]# ls /dev/vdb
二、分区规划
•
MBR/msdos 分区模式
– 分区类型:主分区 扩展分区 逻辑分区
– 至多4个主分区,或者 3个主分区+1个扩展分区(n个逻辑分区)
– 最大支持容量为 2.2TB 的磁盘
– 扩展分区不能格式化
– 分区类型:主分区 扩展分区 逻辑分区
– 至多4个主分区,或者 3个主分区+1个扩展分区(n个逻辑分区)
– 最大支持容量为 2.2TB 的磁盘
– 扩展分区不能格式化
使用fdisk分区工具
• 修改硬盘的分区表,划分分区
~]# fdisk /dev/vdb
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +1G
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
d 删除分区
w 保存并退出
~]# lsblk
~]# ls /dev/vdb[1-2]
~]# fdisk /dev/vdb
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +1G
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
d 删除分区
w 保存并退出
~]# lsblk
~]# ls /dev/vdb[1-2]
三、
格式化:赋予空间文件系统(数据排列组合的规则)
xfs 、ext3、ext4
~]# mkfs.ext4 /dev/vdb1 #格式化ext4
~]# blkid /dev/vdb1 #查看文件系统
~]# mkfs.xfs /dev/vdb2 #格式化xfs
~]# blkid /dev/vdb2 #查看文件系统
xfs 、ext3、ext4
~]# mkfs.ext4 /dev/vdb1 #格式化ext4
~]# blkid /dev/vdb1 #查看文件系统
~]# mkfs.xfs /dev/vdb2 #格式化xfs
~]# blkid /dev/vdb2 #查看文件系统
四、
挂载使用
~]# mount /dev/vdb1 /mypart1
mount: 挂载点 /mypart1 不存在
~]# mkdir /mypart1
~]# mount /dev/vdb1 /mypart1/
~]# df -h #查看正在挂载使用的分区情况
~]# mount /dev/vdb1 /mypart1
mount: 挂载点 /mypart1 不存在
~]# mkdir /mypart1
~]# mount /dev/vdb1 /mypart1/
~]# df -h #查看正在挂载使用的分区情况
~]# mkdir /mypart2
~]# mount /dev/vdb2 /mypart2
~]# df -h #查看正在挂载使用的分区情况
~]# mount /dev/vdb2 /mypart2
~]# df -h #查看正在挂载使用的分区情况
五、
开机自动挂载 /etc/fstab
–
设备路径 挂载点 类型 参数 备份标记 检测顺序
~]# vim /etc/fstab
/dev/vdb1 /mypart1 ext4 defaults 0 0
/dev/vdb2 /mypart2 xfs defaults 0 0
/dev/vdb2 /mypart2 xfs defaults 0 0
vim命令模式下 按 o 另起新的一行,进入插入模式
验证:
~]# umount /mypart1
~]# umount /mypart2
~]# df -h
~]# mount -a
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
[root@server0 ~]# df -h
~]# umount /mypart1
~]# umount /mypart2
~]# df -h
~]# mount -a
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
[root@server0 ~]# df -h
#################################################
综合分区
最终有3个主分区,分别为1G、2G、2G
创建扩展分区 ---> 两个逻辑分区,分别为2G、2G
[root@server0 ~]# fdisk /dev/vdb
p 查看分区表
n 创建主分区----->回车----->回车---->回车----->在last结束时 +1G
p 查看分区表
n 创建扩展分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建逻辑分区----->起始回车------>结束+1G
n 创建逻辑分区----->起始回车------>结束+1G
p 查看分区表
w 保存并退出
[root@server0 ~]# partprobe 刷新分区表命令
[root@server0 ~]# lsblk
最终有3个主分区,分别为1G、2G、2G
创建扩展分区 ---> 两个逻辑分区,分别为2G、2G
[root@server0 ~]# fdisk /dev/vdb
p 查看分区表
n 创建主分区----->回车----->回车---->回车----->在last结束时 +1G
p 查看分区表
n 创建扩展分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建逻辑分区----->起始回车------>结束+1G
n 创建逻辑分区----->起始回车------>结束+1G
p 查看分区表
w 保存并退出
[root@server0 ~]# partprobe 刷新分区表命令
[root@server0 ~]# lsblk
################################################
总结:
1.识别硬盘 lsblk
2.划分分区 fdisk
3.刷新分区表 partprobe
4.格式化 mkfs.ext4 mkfs.xfs blkid
5.挂载使用 mount ----》/etc/fstab开机自动挂载
6.检测: mount -a ----》 df -h
总结:
1.识别硬盘 lsblk
2.划分分区 fdisk
3.刷新分区表 partprobe
4.格式化 mkfs.ext4 mkfs.xfs blkid
5.挂载使用 mount ----》/etc/fstab开机自动挂载
6.检测: mount -a ----》 df -h
设备/dev/sda5表示含义?
SCSI接口设备,第一块硬盘,第5个分区
SCSI接口设备,第一块硬盘,第1个逻辑分区
SCSI接口设备,第一块硬盘,第1个逻辑分区
#################################################
关闭虚拟机,添加新80G的硬盘
关闭虚拟机,添加新80G的硬盘
[root@server0 /]# poweroff
[root@room9pc01 ~]# gos
[root@server0 ~]# lsblk #查看新的硬盘设备
################################################
分区要求:划分3个主分区 1个扩展分区 3个逻辑分区
~]# fdisk /dev/vdc
p 查看分区表
n 创建主分区----->回车----->回车---->回车----->在last结束时 +10G
连续创建3个10G主分区
......
n 创建扩展分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建逻辑分区----->起始回车------>结束+10G
n 创建逻辑分区----->起始回车------>结束+10G
n 创建逻辑分区----->起始回车------>结束+10G
p 查看分区表
w 保存并退出
~]# lsblk
################################################
分区要求:划分3个主分区 1个扩展分区 3个逻辑分区
~]# fdisk /dev/vdc
p 查看分区表
n 创建主分区----->回车----->回车---->回车----->在last结束时 +10G
连续创建3个10G主分区
......
n 创建扩展分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建逻辑分区----->起始回车------>结束+10G
n 创建逻辑分区----->起始回车------>结束+10G
n 创建逻辑分区----->起始回车------>结束+10G
p 查看分区表
w 保存并退出
~]# lsblk
################################################
LVM逻辑卷
LVM逻辑卷
作用:
1.整合分散的空间 2.空间可以进行扩大
1.整合分散的空间 2.空间可以进行扩大
– 零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区
由众多的物理卷(PV)组合成卷组(VG),从卷组中划分多个逻辑卷(LV)
一、建立逻辑卷
1.创建卷组
格式:vgcreate 卷组名 空闲的分区......
格式:vgcreate 卷组名 空闲的分区......
[root@server0 ~]# vgcreate systemvg /dev/vdc[1-2]
[root@server0 ~]# pvs #查看物理卷基本信息
[root@server0 ~]# vgs #查看卷组基本信息
[root@server0 ~]# vgs #查看卷组基本信息
2.通过卷组创建逻辑卷
格式:lvcreate -L 逻辑卷的大小 -n 逻辑卷名 卷组名
格式:lvcreate -L 逻辑卷的大小 -n 逻辑卷名 卷组名
[root@server0 ~]#
lvcreate -L 16G -n mylv systemvg
Logical volume "mylv" created
Logical volume "mylv" created
[root@server0 ~]# lvs #查看逻辑卷基本信息
3.使用逻辑卷
[root@server0 ~]# ls /dev/systemvg/mylv
[root@server0 ~]# mkfs.xfs /dev/systemvg/mylv #格式化mylv逻辑卷,为xfs
[root@server0 ~]# vim /etc/fstab #书写配置文件,开机自启动
[root@server0 ~]# ls /dev/systemvg/mylv
[root@server0 ~]# mkfs.xfs /dev/systemvg/mylv #格式化mylv逻辑卷,为xfs
[root@server0 ~]# vim /etc/fstab #书写配置文件,开机自启动
/dev/systemvg/mylv /lvm xfs defaults 0 0 #注意书写格式及各个点要记牢
[root@server0 ~]#
mount -a #将配置文件中的挂载信息,加载到df -h 显示的挂载信息清单当中
mount: 挂载点 /lvm 不存在
[root@server0 ~]# mkdir /lvm
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
mount: 挂载点 /lvm 不存在
[root@server0 ~]# mkdir /lvm
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
二、 逻辑卷的扩展,支持线上工作
1.卷组有足够的剩余空间
A:扩展空间
[root@server0 ~]# vgs
[root@server0 ~]# lvs
[root@server0 ~]# lvextend -L 18G /dev/systemvg/mylv
[root@server0 ~]# lvs
B: 扩展文件系统
刷新xfs文件系统: xfs_growfs
刷新ext4文件系统: resize2fs
[root@server0 ~]# df -h
[root@server0 ~]# xfs_growfs /dev/systemvg/mylv
[root@server0 ~]# df -h
A:扩展空间
[root@server0 ~]# vgs
[root@server0 ~]# lvs
[root@server0 ~]# lvextend -L 18G /dev/systemvg/mylv
[root@server0 ~]# lvs
B: 扩展文件系统
刷新xfs文件系统: xfs_growfs
刷新ext4文件系统: resize2fs
[root@server0 ~]# df -h
[root@server0 ~]# xfs_growfs /dev/systemvg/mylv
[root@server0 ~]# df -h
2.
卷组没有足够的剩余空间
A:扩展卷组
[root@server0 ~]# vgextend systemvg /dev/vdc{3,5} #找到空闲磁盘分区,并将空闲磁盘分区作成卷组的空间
[root@server0 ~]# vgs
B:扩展逻辑卷空间
[root@server0 ~]# lvs
[root@server0 ~]# lvextend -L 25G /dev/systemvg/mylv
[root@server0 ~]# lvs
C: 扩展逻辑卷文件系统
刷新xfs文件系统: xfs_growfs
刷新ext4文件系统: resize2fs
[root@server0 ~]# df -h
[root@server0 ~]# xfs_growfs /dev/systemvg/mylv
[root@server0 ~]# df -h
A:扩展卷组
[root@server0 ~]# vgextend systemvg /dev/vdc{3,5} #找到空闲磁盘分区,并将空闲磁盘分区作成卷组的空间
[root@server0 ~]# vgs
B:扩展逻辑卷空间
[root@server0 ~]# lvs
[root@server0 ~]# lvextend -L 25G /dev/systemvg/mylv
[root@server0 ~]# lvs
C: 扩展逻辑卷文件系统
刷新xfs文件系统: xfs_growfs
刷新ext4文件系统: resize2fs
[root@server0 ~]# df -h
[root@server0 ~]# xfs_growfs /dev/systemvg/mylv
[root@server0 ~]# df -h
##############################################
了解:逻辑卷也以做缩减
ext4文件系统支持缩减
xfs文件系统不支持缩减
了解:逻辑卷也以做缩减
ext4文件系统支持缩减
xfs文件系统不支持缩减
卷组划分空间的单位:PE 默认 4M
[root@server0 ~]# vgdisplay systemvg
PE Size 4.00 MiB
• 创建卷组的时候设置PE大小
– vgcreate -s PE大小 卷组名 空闲分区...
• 卷组已存在,修改卷组的PE大小
– vgchange -s PE大小 卷组名
– vgchange -s PE大小 卷组名
• 创建逻辑卷的时候指定PE个数
– lvcreate -l PE个数 -n 逻辑卷名 卷组名
– lvcreate -l PE个数 -n 逻辑卷名 卷组名
基于刚建立的 2000MiB 分区构建新的 LVM 存储
– 新的逻辑卷命名为 database,大小为50个物理扩展单
元(Physical Extent),属于 datastore 卷组
– 在 datastore 卷组中的所有逻辑卷,其物理扩展单元
(Physical Extent)的大小为16MiB
– 使用 EXT3 文件系统对逻辑卷 database 格式化,此逻
辑卷应该在开机时自动挂载到 /mnt/database 目录
]# vgcreate -s 16M datastore /dev/vdc6
]# vgdisplay systemvg
PE Size 16.00 MiB
PE Size 16.00 MiB
]#
lvcreate -l 50 -n database datastore
##############################################
1.修改卷组PE大小
[root@server0 ~]# vgchange -s 1M systemvg
Volume group "systemvg" successfully changed
[root@server0 ~]# vgdisplay
2.根据PE个数创建逻辑卷
[root@server0 ~]# lvcreate -l 100 -n lvtest systemvg
Logical volume "lvtest" created
[root@server0 ~]# lvs
[root@server0 ~]# lvcreate -l 100 -n lvtest systemvg
Logical volume "lvtest" created
[root@server0 ~]# lvs
###############################################
逻辑卷的删除
删除: 1.删除逻辑卷 ----> 2.删除卷组
[root@server0 ~]# lvremove /dev/systemvg/mylv
Logical volume systemvg/mylv contains a filesystem in use. #逻辑卷正在使用
[root@server0 ~]# umount /lvm
[root@server0 ~]# lvremove /dev/systemvg/mylv
Logical volume systemvg/mylv contains a filesystem in use. #逻辑卷正在使用
[root@server0 ~]# umount /lvm
[root@server0 ~]# lvremove /dev/systemvg/mylv
Do you really want to remove active logical volume mylv? [y/n]: y
Logical volume "mylv" successfully removed
[root@server0 ~]# lvs
Do you really want to remove active logical volume mylv? [y/n]: y
Logical volume "mylv" successfully removed
[root@server0 ~]# lvs
[root@server0 ~]# lvremove /dev/systemvg/lvtest
Do you really want to remove active logical volume lvtest? [y/n]: y
Logical volume "lvtest" successfully removed
[root@server0 ~]#
[root@server0 ~]# lvs
[root@server0 ~]# vgs
Do you really want to remove active logical volume lvtest? [y/n]: y
Logical volume "lvtest" successfully removed
[root@server0 ~]#
[root@server0 ~]# lvs
[root@server0 ~]# vgs
[root@server0 ~]# vgremove systemvg
Volume group "systemvg" successfully removed
[root@server0 ~]# vgs
Volume group "systemvg" successfully removed
[root@server0 ~]# vgs
################################################