六、磁盘管理

(一)、磁盘概述

  • 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、查看磁盘详细信息
  1. lsblk

4、基本分区

(1)进入磁盘编辑模式

如果是MBR类型,使用fdisk
如果是GPT类型,使用gdisk

(2)刷新分区信息【每次分区完成后,都需要刷新分区信息】、

  1. partprobe 设备文件
  2. partprobe sdb

(3)查看分区信息

  1. fdisk -l 设备文件 或者 lsblk
  2. fdisk -l sdb

5、分区格式化/创建文件系统
  1. mkfs.文件系统类型 分区名 挂载路径
  2. # 例如给sdb1创建ext4文件系统:
  3. mkfs.ext4 sdb1 /dev/sdb1

6、挂载磁盘【文件系统】
  1. mount -t 文件系统类型 分区名 挂载点路径
  2. # 例如挂载sdb1分区
  3. mount -t ext4 /dev/sdb1 /opt/centos

7、查看挂载信息
  1. df -hT
  2. -h:人性化显示
  3. -T:显示文件系统类型

(三)、分区详情

  • MBR占64个字节,每个分区占16个字节,所以最多付出4个分区

    • 4个分区中,还可以创建一个扩展分区【扩展分区不存放数据,所以不能进格式化】
    • 要想在扩展分区内存放数据需要再扩展分区内创建逻辑分区

1、进入磁盘编辑模式
  1. fdisk 设备文件 # 进入磁盘编辑模式
  2. 例如:给sdb创建磁盘分区
  3. 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)查看系统内存信息
  1. free -m 【-m:以MB输出 -g:以GB输出 ,默认以KB输出】

(3)增加/修改交换分区
  1. <1>划分分区:同普通分区的划分,不过要在会话模式中按t,将分区类型改为82(Swaq类型)
  2. <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移除