六、磁盘管理
(一)、磁盘概述
- DISK:磁盘/硬盘
- 磁盘作用:存储数据
- 学习目标:在linux中管理,管理存储设备和资源
掌握知识点:
- 1、磁盘长什么样?
- 2、磁盘有哪些?
- 3、什么是好的磁盘,什么是次的磁盘?
- 4、把磁盘的软件操作(分区格式化)
- 5、写入输入数据到磁盘
磁盘类型:
- 1、机械硬盘:盘片,马达,磁头,磁臂组成的机械结构存储器。分2.5英寸;3.5英寸
- 2、固态硬盘:由芯片和集成电路组成。
磁盘名称 /dev/sda————是一个文件
- /dev:设备文件目录————存放设备的目录
- s代表sata就是串口的意思————磁盘类型
- d代表磁盘————是一块磁盘
- a代表第一块————是滴几块
(二)、基本分区
1、分区方式:
MBR
- MBR支持最大的磁盘容量是<2TB。设计时分配4个分区
- 如果希望超过4个分区,需要分区主分区,改为扩展分区和逻辑分区
GPT
- 全局唯一表示分区表
- GPT支持大于2T的硬盘,支持128个分区
2、磁盘分区标准
磁盘分区——>分区格式化/创建文件系统——>挂载文件系统
3、查看磁盘详细信息
lsblk
4、基本分区
(1)进入磁盘编辑模式
如果是MBR类型,使用fdisk
如果是GPT类型,使用gdisk
(2)刷新分区信息【每次分区完成后,都需要刷新分区信息】、
partprobe 设备文件
partprobe sdb
(3)查看分区信息
fdisk -l 设备文件 或者 lsblk
fdisk -l sdb
5、分区格式化/创建文件系统
mkfs.文件系统类型 分区名 挂载路径
# 例如给sdb1创建ext4文件系统:
mkfs.ext4 sdb1 /dev/sdb1
6、挂载磁盘【文件系统】
mount -t 文件系统类型 分区名 挂载点路径
# 例如挂载sdb1分区
mount -t ext4 /dev/sdb1 /opt/centos
7、查看挂载信息
df -hT
-h:人性化显示
-T:显示文件系统类型
(三)、分区详情
MBR占64个字节,每个分区占16个字节,所以最多付出4个分区
- 4个分区中,还可以创建一个扩展分区【扩展分区不存放数据,所以不能进格式化】
- 要想在扩展分区内存放数据需要再扩展分区内创建逻辑分区
1、进入磁盘编辑模式
fdisk 设备文件 # 进入磁盘编辑模式
例如:给sdb创建磁盘分区
fdisk /dev/sdb
2、磁盘编辑命令
命令 | 功能 |
---|---|
n | 新建分区 |
x 1命令 | tee [参数] 文件名2例:将ping baidu.com的返回值输入到文件中3ping baidu.com | tee ping-daidu.log45-a #已追加的方式添加到文件中6-i #忽视ctrl+c 组合键发起的中断信号(SIGINT)。bash | 帮助命令 |
d | 删除分区 |
t | 修改分区类型 |
w | 保存并退出 |
p | 查看磁盘创建情况 |
3、磁盘分区选项【按n后进行选择】
命令 | 功能 |
---|---|
p | 创建主分区【MBP模式最多只能有四个主分区】 |
e | 创建扩展分区【MBP模式只能有一个扩展分区】 |
l | 创建逻辑分区【逻辑分区可以创n个,只要磁盘足够大】 |
(四)、创建交换分区【swaq】
(1)作用:作为逻辑内存使用
(2)查看系统内存信息
free -m 【-m:以MB输出 -g:以GB输出 ,默认以KB输出】
(3)增加/修改交换分区
<1>划分分区:同普通分区的划分,不过要在会话模式中按t,将分区类型改为82(Swaq类型)
<2>分区格式化:
mkswap 分区名
例:格式化/dev/sdb1
mkswap /dev/sdb1
<3>挂载:
swapon 分区名
例:挂载 /dev/sdb1
swapon /dev/sdb1
<4>卸载:
swapoff 分区名
例:卸载/dev/sdb1
swapoff /dev/sdb1
(五)、LVM逻辑卷的创建
1.往磁盘中写入大量数据
dd if=/dev/zero of=路径 bs=1M count=1000
2.逻辑卷LVM
- 特点:随意扩充大小
- 术语:PV——物理卷 VG——卷组 LV——逻辑卷
3.创建LVM
(1)、将磁盘标记为PV【在标记磁盘时确保磁盘类型为8e,新版本会自动转换】
pvcreate 设备文件【磁盘名】
例如:将/dev/sdb1标记为物理卷
pvcreate /dev/sdb1
(2)创建VG:
vgcreate 卷组名 设备文件
例如:创建vg01卷组,将物理卷sdb1放入卷组
vgcreate vg01 /dev/sdb1 [如果磁盘过多可使用{}进行创建]
(3)从VG中抽取空间创建LV:
lvcreate -L 指定逻辑卷大小 -n 逻辑卷卷名 卷组名
例如:创建名为 lv01的逻辑卷,指定大小为10G,并将vg01卷组加入到逻辑卷
lvcreate -L +10G -n lv01 vg01
(4)格式化文件系统:
mkfs.ext4 逻辑卷路径 # 逻辑卷路径:/dev/卷组名/逻辑卷名
例如:将逻辑卷lv01进行格式化
mkfs.ext4 /dev/vg01/lv01
(5)挂载LVM:
mount 逻辑卷路径 挂载点
例如:挂载lv01到/opt/lvm
mount /dev/vg01/lv01 /opt/lvm
(六)LVM逻辑卷的扩容
1、扩大VG:
(1)创建PV:
pvcerate 设备名称
例如创建sdb2为物理磁盘
pvcreate /dev/sdb2
(2)查看PV信息:
pvs
(3)扩展VG:
vgextend 卷组名 设备文件
例如:将新创建的sdb2物理卷,加入到vg01卷组:
vgextend vg01 /dev/sdb2
(4)查看VG信息:
vgs
2、LV的扩容(从VG中取得空间)
(1)查看VG信息:
vgs
(2)扩展LV:
lvextend -L +指定大小 逻辑卷路径
例如:从vg01卷组中给lv01增加1G的容量
lvextend -L +1G /dev/vg01/lv01
增加完成后再刷新逻辑卷
resize2fs /dev/vg01/lv01
(3)刷新逻辑卷
resize2fs 逻辑卷路径
例如:对刚刚扩容的LVM进行刷新
resize2fs /dev/vg01/lv
(七)文件系统
1、文件系统类型
- ext3:文件系统最大16TB
- ext4:文件系统最大16TB
- xfs:文件系统最大100TB
2、更新文件系统:
resize2fs 逻辑卷路径(LV扩容后,需要刷新下文件系统)
例如:刚刚扩容的lv01
resize2fe /dev/vg01/lv01
3、ext4文件系统(索引文件系统)
(1)superblock:记载inode与block的使用情况
(2)inode:索引结点,记载了文件的属性(元数据)。每个文件对应一个inode,每个inode大小为128字节
(3)block:存储了文件的实际数据。一个block只能存储单个文件的数据。默认大小为4K
(4)总结:inode限制了文件的存储数量,block限制文件的存储大小
4、观察某个分区的inode数量
df -i
5、软链接【类似于win下的快捷方式】
(1)软链接是一个新文件,记录了源文件的路径,所有的数据变化都会反馈到文件里。若源文件消失,则链接也会失效。
ln -s 源文件 链接路径
6、硬链接
(1)缺点:不能跨分区创建硬链接,且不能指向目录,只能针对文件。故基本不用硬链接
(2)原理:在目录的block中添加一笔文件信息,指向源文件的inode。故创建硬链接,不消耗分区的inode和block【硬链接相当于复制,但不等于复制[因为硬链接也会随着源文件的变化而变化],删除源文件后,链接依旧有效,且能读取数据】
(3)语法:
ln 源文件 链接路径
(八)RAID
(1)作用:容错,提升读写速度
(2)类型:
RAID0——数据分开存入两个盘,不容错,但提升了读写速度【是原来的一倍】
RAID1——至少需要2个盘,一个存储,一个备份。利用率为50%
RAID5——至少需要3个盘,两个存储,一个验证【存放校验码】,利用率(n-1)/n
(3)分类:
硬RAID:通过硬件来实现,会有专门的RAID卡
软RAID:通过命令实现,提升容错和读写速度
(九)软RAID的使用
(1)采用RAID5,准备4块硬盘,其中1块作为热备用
(2)创建RAID:
mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{d,e,f}1
-C:创建RAID
-l:RAID级别
-n:RAID成员的数量
-x:热备盘的数量【热备盘用于顶替校验盘,当检验盘坏掉之后】
(3)查看RAID信息:
mdadm -D RAID路径
(4)之后便与普通硬盘一样,分区,格式化,挂载即可使用。
(5)删除RAID:
mdadm /dev/md0 -f /dev/sdb -r /dev/sdb
-f:强制删除
-r:remove移除