天天看點

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

繼續閱讀