磁道:track
扇区:sector
磁头:head
柱面:cylinder
#######################################################
一块硬盘的“艺术”之旅
• 识别硬盘 => 分区规划 => 格式化 => 挂载使用

• MBR/msdos 分区模式
– 1~4个主分区,或者 0~3个主分区+1个扩展分区(n个逻辑分区)
– 最大支持容量为 2.2TB 的磁盘
– 扩展分区不能格式化


修改硬盘的分区表
– fdisk  硬盘设备

常用交互指令:
m 列出指令帮助
p 查看现有的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出


####################################################
补充命令:  
  lsblk  查看本机所有的磁盘设备信息


1. 在磁盘 /dev/vdb 上按以下要求建立分区:
1)采用默认的 msdos 分区模式
2)第1个分区 /dev/vdb1 的大小为 200M
3)第2个分区 /dev/vdb2 的大小为 2000M
4)第3个分区 /dev/vdb3 的大小为 1000M

# fdisk  /dev/vdb
                 
   n 创建新的分区----->p(回车)----->1(回车) ---->回车----->+200M
   p 查看分区表
   d 删除分区
   w 保存并退出

# ls  /dev/vdb[1-3]


识别新分区表
• 使用 partprobe 命令
# partprobe  /dev/vdb


– 当硬盘的分区表被更改以后,需要将分区表的变化及时通知 Linux 内核,最好 reboot 一次
– 否则在访问分区时可能会找不到准确的设备


常用的格式化工具
• mkfs 工具集

– mkfs.ext3   分区设备路径
– mkfs.ext4   分区设备路径
– mkfs.xfs    分区设备路径
– mkfs.vfat -F 32   分区设备路径


# mkfs.ext4 /dev/vdb2
# mkfs.xfs  /dev/vdb3

查看UUID与文件系统类型
# blkid  /dev/vdb2
# blkid  /dev/vdb3

挂载使用:
#  mkdir  /mypart2
#  mkdir  /mypart3

#  mount /dev/vdb2   /mypart2
#  mount /dev/vdb3   /mypart3

#  echo 123 > /mypart2/1.txt
#  echo abc > /mypart3/2.txt


# df -h         #查看正在挂载分区信息
# du -sh  /etc  #统计/etc目录的大小


思路:
1.lsblk      #磁盘是否识别
2.fdisk      #划分新的分区
3.partprobe  #刷新新的分区
4.mkfs.xfs   #格式化新的文件系统
5.mount      #挂载
##############################################

实现开机自动挂载
• 配置文件 /etc/fstab 的记录格式
– 设备路径   挂载点   类型   参数   备份标记   检测顺序
 /dev/vdb2  /mypart2   ext4  defaults  0      0
 UUID="xxxx-xxx"	/mypart3	ext4 defaults	0	0


补充 vim  命令模式用法:   按o可以另起一行插入

[root@server0 ~]# vim  /etc/fstab
/dev/vdb2  /mypart2  ext4  defaults  0  0

[root@server0 ~]# umount /mypart2
[root@server0 ~]# df -h
[root@server0 ~]# mount -a
[root@server0 ~]# df -hT


mount  -a  检测
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载

[root@server0 ~]# blkid /dev/vdb3		#查看UUID

[root@server0 ~]# vim  /etc/fstab 
UUID="cacf1ed4-afba-4c6f-8c27-957600f9b8e2" /mypart3    xfs  defaults 0 0

[root@server0 ~]# umount /mypart3
[root@server0 ~]# df -h
[root@server0 ~]# mount -a
[root@server0 ~]# df -h



补充  vim命令模式中 按u可以撤销

#######################################################

综合分区规划
应用需求
• 硬盘 /dev/vdb 剩余空间的分区调整
– MBR分区模式,已有三个主分区 /dev/vdb[1-3]
– 需要新增三个分区 /dev/vdb[5-7],
分区大小依次为 500M、2000M、512M

# fdisk  /dev/vdb
   p 查看分区表                 
   n 创建新的分区
    ----->e ---->起始回车----->结束回车  将所有空间给扩展分区
   p 查看分区表
   n 创建新的分区----->起始回车------>+500M
                 ......
   w 保存并退出
[root@server0 ~]# partprobe            #刷新,新的分区表
[root@server0 ~]# ls /dev/vdb[1-7]


综合分区练习:

[root@server0 ~]# lsblk 

划分6个分区  /dev/vdc1   10G
             /dev/vdc2   10G                    
             /dev/vdc3   10G
             /dev/vdc4   剩余所有空间
             /dev/vdc5   8G                    
             /dev/vdc6   10G  

[root@server0 ~]# ls /dev/vdc[1-6]

######################################################
LVM逻辑卷
  1.整合分散的空间  
  2.空间可以扩大或减小

LVM工作方式
• 在“分区 --> 格式化”中间增加的一个逻辑层
– 零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区

   面粉--------->面团--------->小面团------>蒸------>馒头
   
   砖----------->楼房--------->打隔断------>装修----->入住

   将众多的物理卷(pv)组成卷组(vg),在从卷组中划分出逻辑卷(lv)  

#####################################################
– 创建卷组:vgcreate  卷组名  空闲分区...
– 创建逻辑卷:lvcreate -L 大小   -n  名称  卷组名
[root@server0 ~]# pvs	#查看物理卷
[root@server0 ~]# pvscan	#查看物理卷
[root@server0 ~]# pvcreate /dev/vdc[1-2]	#创建pv卷(可省略)
[root@server0 ~]# pvs

[root@server0 ~]# vgs	#查看卷组
[root@server0 ~]# vgcreate systemvg /dev/vdc[1-2]		#创建vg卷组
[root@server0 ~]# vgs

[root@server0 ~]# lvcreate -n vo -L 16G systemvg 	#从卷组vg中创建逻辑卷lv
[root@server0 ~]# lvs
[root@server0 ~]# ls /dev/systemvg/vo		#查看创建的逻辑卷


格式化,配置开机自动挂载

[root@server0 ~]# mkdir /lvm
[root@server0 ~]# mkfs.xfs /dev/systemvg/vo

[root@server0 ~]# vim  /etc/fstab 
/dev/systemvg/vo  /lvm  xfs		defaults	0	0

[root@server0 ~]# mount -a
[root@server0 ~]# df  -hT


########################################################
扩展LVM

一、卷组有足够的剩余空间
1.扩展空间
[root@server0 ~]# lvextend -L 18G /dev/systemvg/vo 		#逻辑卷扩展到18G
[root@server0 ~]# vgs
[root@server0 ~]# lvs

2.扩展文件系统 
  扩展ext4文件系统 命令 resize2fs  设备路径
  扩展xfs文件系统 命令 xfs_growfs  设备路径

[root@server0 ~]# df -h
[root@server0 ~]# xfs_growfs  /dev/systemvg/vo 	    #扩展xfs文件系统
[root@server0 ~]# df -hT


二、卷组没有足够的剩余空间
1.扩展VG空间
[root@server0 ~]# vgextend systemvg /dev/vdc3
[root@server0 ~]# vgs

2.扩展LVM空间
[root@server0 ~]# lvextend -L 25G /dev/systemvg/vo 
[root@server0 ~]# vgs
[root@server0 ~]# lvs

3.扩展文件系统 
  扩展ext4文件系统 命令 resize2fs
  扩展xfs文件系统 命令 xfs_growfs
[root@server0 ~]# df -h
[root@server0 ~]# xfs_growfs /dev/systemvg/vo 
[root@server0 ~]# df -h

########################################################
卷组的PE大小
PE:卷组划分空间的单位 (默认大小:4M)
# vgchange -s 1M systemvg		#修改卷组systemvg的PE单位的大小为1M
• 创建卷组的时候设置PE大小
– vgcreate -s PE大小 卷组名 空闲分区...

• 创建逻辑卷的时候指定PE个数
– lvcreate -l PE个数 -n 逻辑卷名 卷组名

[root@server0 ~]# vgcreate -s 16M datastore /dev/vdc5		#创建卷组时指定PE大小
[root@server0 ~]# vgdisplay datastore   #查看卷组的详细信息

[root@server0 ~]# lvcreate -l 50 -n datebase datastore		#创建50个PE大小的逻辑卷
[root@server0 ~]# lvs

#######################################################
管理交换空间swap(虚拟内存)

[root@server0 ~]# swapon  -s         	#查询交换空间状态
[root@server0 ~]# mkswap /dev/vdc6   	#格式化交换文件系统
[root@server0 ~]# swapon /dev/vdc6   	#启用交换分区
[root@server0 ~]# free -m            	#查询内存及Swap大小信息
[root@server0 ~]# swapoff /dev/vdc6  	#停用交换分区
[root@server0 ~]# vim /etc/fstab      	#完成开机自动启用
/dev/vdc6  swap  swap  defaults  0  0

[root@server0 ~]# reboot