天天看点

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 磁盘进行分区
[[email protected] ~] 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 磁盘分区实操

[[email protected] ~] 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

[[email protected] ~] 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 在开机时批量挂载
           

企业磁盘常见问题

磁盘空间不足

# 模拟磁盘空间饱和
[[email protected] ~] 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

    [[email protected] ~] 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

继续阅读