Linux 运维基础:磁盘管理

Posted 漂亮姐姐1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 运维基础:磁盘管理相关的知识,希望对你有一定的参考价值。

磁盘分区使用工具

一般情况下,

小磁盘分区:磁盘空间小于2T --> fdisk
大磁盘分区:磁盘空间大于 2T --> party(亦可用于小于2T)

fdisk

常用命令

命令功能
fdisk -l查看磁盘分区信息
fdisk /dev/sdb进行磁盘分区
mkfs.xfs /dev/sdb1mkfs -t xfs /dev/sdb2磁盘格式化
mount /dev/sdb1 /mnt磁盘挂载
df -h查看磁盘挂载情况

磁盘文件系统种类

文件系统系统特点
ext3/4centos6
xfscentos7格式化效率高 数据存储效率提升(数据库服务器)

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 运维基础:磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 运维基础:磁盘管理

Linux运维基础-磁盘管理

Linux运维应该怎么去学习?

Linux运维16:磁盘空间管理

Linux运维--磁盘&shell编程基础

linux运维工程师必须掌握哪些技能