22. 磁盘分区
1. 磁盘命名规则
一台服务器只能分4个分区?
如果想超过四个分区怎么办?
查磁盘分区相关信息
[root@web01 ~]# blkid
[root@web01 ~]# cat /etc/fstab ##开机自动挂载的文件
2.磁盘基本分区Fdisk
2.1 添加一个20G的硬盘(虚拟机操作)
2.2 对该磁盘进行分区
fdisk
n 新建一个分区
p 主分区
e 扩展分区
p 打印分区信息
d 删除分区
w 保存分区信息
q 退出不保存分区信息
fdisk /dev/sdb
2.1 第一个分区 1Gb
2.2 第二个分区 2Gb
2.3 第三个分区 5Gb
2.4 第四个分区 所有剩余空间
2.3 .格式化
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mkfs.xfs /dev/sdb3
mkfs.xfs /dev/sdb4
2.4 挂载-使用
mount /dev/sdb1 /data1/
mount /dev/sdb2 /data2/
mount /dev/sdb3 /data3/
mount /dev/sdb4 /data4/
前面我们已经提到过,如果需要使用磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。
mount主要是为文件系统指定一个访问入口。
PS: 类似我的商场没有门,那么就无法进入购买商品,此时通过mount命令可以创建一个入口。给超市安装一个门。如图:
1.通过mount进行挂载,但重启将会失效。我们称为临时生效。
可以使用umount进行卸载。
2.5 检查结果
[root@container ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 1014M 33M 982M 4% /data1
/dev/sdb2 2.0G 33M 2.0G 2% /data2
/dev/sdb3 5.0G 33M 5.0G 1% /data3
/dev/sdb4 12G 33M 12G 1% /data4
2.1 总结
!
磁盘基本分区Fdisk
1.添加一块小于2TB的磁盘进行使用,步骤如下:
1.给虚拟机添加一块新的硬盘
2.使用fdisk进行分区
3.使用mkfs进行格式化
4.使用mount进行挂载
PS: 生产分区建议,如无特殊需求直接使用整个磁盘即可,无需分区。
PS: 学习分区建议: 1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)
lsblk <-命令
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 100M 0 part
├─sdb2 8:18 0 200M 0 part
├─sdb3 8:19 0 300M 0 part
├─sdb4 8:20 0 1K 0 part #扩展分区
├─sdb5 8:21 0 500M 0 part
├─sdb6 8:22 0 600M 0 part
└─sdb7 8:23 0 700M 0 part
mkfs.xfs /dev/sdb1 -f
mkfs.xfs /dev/sdb2 -f
mkfs.xfs /dev/sdb3 -f
mkfs.xfs /dev/sdb5
mkfs.xfs /dev/sdb6
mkfs.xfs /dev/sdb7
创建7个目录进行分别挂载!!!
3.练习
实际 拿到一个 磁盘怎么分?
1.为该磁盘分配1个分区,所有的空间都给这一个分区?
2.格式化
3.挂载使用
fdisk /dev/sdb #分一个分区
mkfs.xfs /dev/sdb1 -f #格式化该分区
mkdir /data_test #创建入口目录
mount /dev/sdb1 /data_test/ #挂载(将/data_test作为/dev/sdb1的入口目录)
df -h #使用df -h 查看挂载情况,或者使用lsblk
4. 磁盘基本分区Gdisk
4.1 磁盘的基本分区Gdisk
前面我们已经了解到fdisk分区
但fdisk不支持给高于2TB的磁盘进行分区。
**如果有单块盘高于2TB,建议使用Gdisk进行分区。 **
gdisk
1、能够识别大于2TB的磁盘存储空间
2、可以支持分区的数量 高达 128个 主分区 没有扩展,逻辑分区的概念。
3、MBR 磁盘 和 GPT 不能互相转换、容易造成数据丢失。
lsblk #查看磁盘详情
gdisk /dev/sdc
mkfs.xfs /dev/sd
mkdir /data-cc1
mount /dev/sdc1 /data-c/
安装parted, 刷新内核立即生效,无需重启
partprobe /dev/sdb
df -h
mount -o ro /dev/sdc1 /data-c/
卸载(卸载挂载点目录名称、卸载挂载的设备名称)
[root@container ~]# umount /dev/sdc1
[root@container ~]# umount /data-c/
强制卸载 (你进入了挂载点的目录,然后无法卸载。需要强制卸载)
[root@container data-c]# umount -l /dev/sdc1
1.2 配置一个文件 /etc/fstab
(开机会加载该文件中的设备)
5. 永久挂载配置详解
5.1 /etc/fstab配置文件编写格式
要挂载的设备 挂载点(入口) 文件系统类型 挂载参数 是否备份 是否检查
/dev/sdb1 /db1 xfs defaults 0 0
第一列:可以使用UUID
[root@container ~]# blkid
/dev/sda1: UUID="723eb45d-9a1b-4e8f-b06d-cf9024302147" TYPE="xfs"
/dev/sda2: UUID="yVHSU3-Cmkf-qsg9-6DNg-P87L-mCDN-VOHvcO" TYPE="LVM2_member"
/dev/sdb1: UUID="3b0143a3-39af-4991-afab-01227fbe767c" TYPE="xfs"
第五列:是否进行备份。通常这个参数的值为0或者1
选项 含义
0 代表不做备份
1 代表要每天进行备份操作
2 代表不定日期的进行备份操作
第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整
选项 含义
0 不要检验磁盘是否有坏道
1 检验
2 校验 (当1级别检验完成之后进行2级别检验)
5.2 永久挂载一个设备
**[root@container ~]# vim /etc/fstab**
/dev/sdb1 /data1 xfs defaults 0 0
如何知道写的对于不对 ---> mount -a (会去加载/etc/fstab中的 挂载信息 )
[root@container ~]# df -h
#文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 20G 33M 20G 1% /data1 《--读取/etc/fstab 加载该设备
6. swap分区
Swap分区在系统的物理内存不够时,将硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。
PS: 当物理内存不够时会随机kill占用内存的进程,从而产生oom,临时使用swap可以解决。
由于该进程非常的消耗内存,造成物理内存不够,系统会启用保护机制,干掉内存较高的程序
[root@container ~]# swapoff -a 关闭所有swap分区 [root@container ~]# free -m
查看内存空闲 total used free shared buff/cache
available Mem: 972 227 433 7
312 544 Swap: 0 0 0
[root@container ~]# dd if=/dev/zero of=/dev/null bs=630M count=1000
已杀死 /var/log/message 发现存在oom Mar 27 10:20:13 container kernel: Out of
memory: Kill process 2123 (dd) score 629 or sacrifice child为了避免物理内存不够用(使用swap硬盘空间来临时充当内存) [root@container ~]# swapon -a
[root@container ~]# free -m total used free shared
buff/cache available Mem: 972 210 637
7 123 599 Swap: 2047 0 2047
[root@container ~]# dd if=/dev/zero of=/dev/null bs=1000M count=1000
swap一但被使用,就会发现系统会越来越卡。 ( 分配内存,硬件空间模拟内存介质 所以就很卡 )
6.1 如何将磁盘空间划分一部分给swap使用
1.先找一块硬盘,划分1Gb空间 fdisk
2.格式化为一个swap的设备 mkswap /dev/sdb1
3.通过 swapon -a /dev/sdb1 将该设备加入swap
4.使用free -m 检查swap的大小 free -m
5.如果不想使用swap了 swapoff /dev/sdb1 移除
------如上操作都是临时的,如需永久生效,需要添加到/etc/fstab