前言
前幾天有一個需求:將ceph的一個osd卸載下來,進行硬盤ssd的讀寫速度測試已經壓力測試,所以需要進行硬盤的重新整理。正好需要將這一套操作(硬盤分區,格式化,卸裝載)給搗騰一遍,所以記載一下,希望能給大家帶來幫助。
1.將ssd從ceph中osd上卸載下來
該系列操作涉及到具體ceph的相關操作,請大家自助查詢相關資料。
接下來的主要的流程:
- 對磁盤進行分區
- 對某一個分區進行格式化
- 建立文件系統
- (可選)對建立好的文件系統進行檢驗
- 在Linux上,建立掛載點,然後將它掛載到目錄上
2.磁盤分區
有幾個很有用的命令:
- lsblk
列出系統上的所有磁盤列表。其中會有:sda,sdb,...,nvme0,nvme1,...,等。這些就是具體的在設備上的硬盤。假如每個設備上有樹形分支:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 558.4G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 128G 0 part [SWAP]
├─sda3 8:3 0 100G 0 part /home
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 329.4G 0 part /
nvme0n1 259:4 0 1.8T 0 disk
nvme1n1 259:2 0 1.8T 0 disk
nvme2n1 259:3 0 1.8T 0 disk
nvme3n1 259:5 0 1.8T 0 disk
nvme4n1 259:0 0 1.8T 0 disk
nvme5n1 259:1 0 1.8T 0 disk
這說明sda這個硬盤上有5個分區。下面是5個分區中各個分區的信息。現在我們以nvme0n1爲例對該磁盤進行掛載。
MBR分區表請使用fdisk分區,GPT分區表使用gdisk進行分區。(很重要!很重要!很重要!否則會分區失敗)怎麼知道是哪一種分區格式呢?
parted 設備名 print
其中:Partition Table一項就是分區表的格式
然後根據具體內容進行分區,記住如果操作不當的話想撤銷,最後別【w】執行就可以,因爲所有操作都是在內存中進行,最後當你【q】就當前的所有操作都給失效掉。
3.磁盤格式化
磁盤格式化使用mkfs命令,但是具體使用什麼格式,需要使用mkfs的子命令。例如你要格式化成xfs格式,你就要使用mkfs.xfs命令;你要格式化爲ext4形式,你就需要mkfs.ext4的命令。(本次採用xfs格式方式)
mkfs.xfs 【-b bsize】 [-d 參數] 【-i 參數】 【-l 參數】 【-L 參數】 【-f】 [-r 參數] 設備名
-b 後面接區塊容量
-d 後面接data section 的相關參數
-f (force)表示現在這個設備已經有了文件系統,需要強制性格式化
其實簡單暴力直接不接任何參數,一般就是:
mkfs.xfs 設備名(/dev/sdb) (-f)
然後檢查是否格式化成功,使用:
blkid 設備名(例如/dev/sdb)
我的機器上顯示的nvme0n1是:
# blkid /dev/nvme0n1
/dev/nvme0n1: UUID="ce3c7ffa-e293-4b34-a849-e6d29c450644" TYPE="xfs"
有這樣的形式,說明已經格式化成功。
4.檢驗文件系統
xfs文件系統檢查用到 xfs_repair命令。
# xfs_repair [-fnd] 設備名
-f 說明後面的設備是文件不是設備
-n 只進行檢查,不修改文件的任何數據(僅僅進行檢查)
-d 在單人維護模式下面,針對根目錄進行檢查和修復的操作,比較危險,不要隨便操作
我一般使用:
xfs_repair -n 設備名
5.文件系統掛載與卸載
文件系統已經格式化完畢之後,那麼就可以開始對給文件系統進行掛載到一個目錄上。(就是將這個文件系統跟一個目錄(例如/data/my_xfs目錄)進行綁定,這樣訪問這個磁盤的文件系統就成了訪問這個目錄。)也就是說,這個目錄就是該文件系統的訪問入口,在這個文件目錄裏面創建文件,創建文件夾就成了在這個文件系統中創建文件和文件夾。掛載之前需要注意幾點:
- 單一文件系統不應該被重複掛載在不同的掛載點(目錄)上
- 單一目錄不應該重複掛載多個文件系統
- 要作爲掛載點的目錄,理論上都應該是空目錄纔可以
文件系統掛載很簡單,就是一個mount命令,卸載就是umount。
每個設備都有一個UUID,掛載的時候,你需要將指定的設備(由UUID確定更好)和掛載點(目錄)。通過
blkid [設備名]
來查看你要掛載的設備的UUID.
然後執行:(注意:掛載目錄應該是已經存在的空目錄,如果沒有改目錄需要mkdir創建一個空目錄)
# mount UUID="你的UUID的序列串" 【掛載目錄】
這樣的話就可以把這個設備(UUID)和指定的掛載目錄進行綁定了。檢查是否掛載成功可以使用:
df 掛載目錄
會顯示類似於
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk1s1 236568496 131203248 99862432 57% 969984 9223372036853805823 0% /
其中mounted on 表示的就是掛載在那個目錄了。
注意:這樣掛載是本次掛載,如果想要啓動掛載就需要修改配置文件(/etc/fstab):
在/etc/fstab文件加上一行:
設備名 掛載點 文件系統 defaults 0 0
設備名:就是你的文件系統設備名字,例如/dev/sdb
掛載點:就是你mount 命令的掛載目錄
文件系統:就是你將這個文件系統格式化的文件系統類型(xfs,ext4等)
其他都是默認。(由於你的系統肯定有有現存的掛載點,所以你可以照貓畫虎在下面添一行。重要的就是:設備名,掛載點,文件系統。其他的按照默認的defaults 0 0 就可以了)
好了這樣就大功告成了,你可以cd命令進入你的掛載點(目錄上),然後進行各種操作即可。