Linux 运维基础:磁盘管理
Posted 漂亮姐姐1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 运维基础:磁盘管理相关的知识,希望对你有一定的参考价值。
磁盘分区使用工具
一般情况下,
小磁盘分区:磁盘空间小于2T --> fdisk
大磁盘分区:磁盘空间大于 2T --> party(亦可用于小于2T)
fdisk
常用命令
命令 | 功能 |
---|---|
fdisk -l | 查看磁盘分区信息 |
fdisk /dev/sdb | 进行磁盘分区 |
mkfs.xfs /dev/sdb1 或 mkfs -t xfs /dev/sdb2 | 磁盘格式化 |
mount /dev/sdb1 /mnt | 磁盘挂载 |
df -h | 查看磁盘挂载情况 |
磁盘文件系统种类
文件系统 | 系统 | 特点 |
---|---|---|
ext3/4 | centos6 | |
xfs | centos7 | 格式化效率高 数据存储效率提升(数据库服务器) |
fdisk 磁盘分区实操
# 对 sdb 磁盘进行分区
[root@smartgirl ~] fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
# 创建新的分区
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): # 创建主分区
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048): # 分区起始(一般按默认)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +2G # 给该分区分配2G的空间
Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0362aa81
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
# 继续创建两个主分区
# 添加扩展分区
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e # 创建一个扩展分区
Selected partition 4
First sector (12584960-20971519, default 12584960):
Using default value 12584960
Last sector, +sectors or +size{K,M,G} (12584960-20971519, default 20971519): # 将剩下的磁盘空间分配给扩展分区
Using default value 20971519
Partition 4 of type Extended and of size 4 GiB is set
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0362aa81
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 83 Linux
/dev/sdb3 8390656 12584959 2097152 83 Linux
/dev/sdb4 12584960 20971519 4193280 5 Extended
# 在扩展分区上添加逻辑分区
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (12587008-20971519, default 12587008):
Using default value 12587008
Last sector, +sectors or +size{K,M,G} (12587008-20971519, default 20971519): +200M
Partition 5 of type Linux and of size 200 MiB is set
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0362aa81
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 83 Linux
/dev/sdb3 8390656 12584959 2097152 83 Linux
/dev/sdb4 12584960 20971519 4193280 5 Extended
/dev/sdb5 12587008 12996607 204800 83 Linux
# 保存分区结果并退出
Command (m for help): w
# 设置分区文件系统
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb
# 加载磁盘分区信息
partprobe /dev/sdb
parted
常用命令
命令 | 功能 |
---|---|
parted /dev/sdb | 开始分区 |
mklabel gpt | 创建一个分区表 |
rm $数字 | 删除分区 |
partprobe /dev/sdb | 加载磁盘信息 |
party 磁盘分区实操
[root@smartgirl ~] parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt # 修改磁盘分区类型 --- 大磁盘分区需要修改为gpt
# 默认为dos --- 仅支持四个主分区
# gpt --- 不限制主分区的数量
(parted) mkpart primary 0 2100G # parted的分区是实时的,在未退出前parted分区就完成
# fdisk如果最后没有保存退出,分区不会完成
(parted) q
[root@smartgirl ~] partprobe /dev/sdb # 加载磁盘分区
磁盘开机自动挂载
实现开机自动挂载
方法一
将挂载命令 mount /dev/sdb1 /mnt
写入 /etc/rc.local
文件
检查: tail -2 /etc/rc.local
方法二
编辑/etc/fstab文件
UUID=6f7d2f58-0386-4223-8c03-b7915ba7b07f /mnt xfs defaults 0 0
设备ID 挂载点 文件系统 挂载参数 是否备份数据 是否检查磁盘
UUID:Universally Unique Identifier(通用唯一识别码)
查看UUID : blkid
挂载参数 : defaults/auto 可以实现开机自动挂载,也可以使用 mount -a 在开机时批量挂载
企业磁盘常见问题
磁盘空间不足
# 模拟磁盘空间饱和
[root@smartgirl ~] dd if=/dev/zero of=/mnt/1000M2 bs=2G count=10
dd: error writing ‘/mnt/1000M2’: No space left on device
10+0 records in
9+0 records out
948830208 bytes (949 MB) copied, 2.85603 s, 332 MB/s
可能原因
- 存储文件过大 — block被占满
解决方法:找出大的没用的数据:du -s /* | sort -h
- 存储文件数量太多 — inode被占满
解决方法:删除小文件find -type f -size -10k | xargs rm
ps: 文件删除要注意检查,避免误删
内存空间不足
解决方法:调整swap分区的大小
创建并使用swap分区
- 在磁盘中准备一段空间
dd if=/dev/zero of=/tmp/1G bs=100M count=10
- 将磁盘空间标记为交换分区
mkswap /tmp/1G
[root@smartgirl ~] mkswap /tmp/1G Setting up swapspace version 1, size = 1023996 KiB no label, UUID=efa8ae7d-390f-4d1d-87a9-429f0c398876
- 将标记空间设置为交换分区
swapon /tmp/1G
- 检查内存和swap分区情况
free -h
取消swap分区
swapoff /tmp/1G
rm -f /tmp/1G
以上是关于Linux 运维基础:磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章