fdisk基本用法  

fdisk分區工具的基本用法

# 命令參數
-l      # 列出所有分區表
fdisk 設備文件路徑      # 管理設備


# 菜單操作
p       # 列出磁盤分區表
d       # 刪除分區
n       # 創建新分區
q       # 不保存直接退出
w       # 保存後退出
l       # 列出所有支持的分區類型
t       # 更改分區類型
m       # 列出所有命令

分區類型

Centos7部署磁盤陣列_磁盤陣列

分區管理  

在虛擬機中添加一塊硬盤

Centos7部署磁盤陣列_數據_02

查看硬盤

reboot       # 添加完硬盤後重啓計算機
fdisk -l     # 查看當前硬盤

Centos7部署磁盤陣列_文件系統_03

創建主分區

創建一個主分區,大小為5G,分區類型為 Linux raid autodetect

fdisk /dev/sdb      # 對硬盤/dev/sdb進行操作
n    # 輸入n新建分區
p    # 主分區
t    # 更改分區類型
fd   # 使用Linux raid autodetect分區類型
w    # 保存退出

Centos7部署磁盤陣列_磁盤陣列_04

# 查看分區情況
fdisk -l /dev/sdb


# 分區詳情
分區名: /dev/sdb1
起始扇區: 2048
結束扇區: 10485759
分區大小: 5241856 / 1024 = 5119M ≈ 5G
分區類型: Linux raid autodetect

Centos7部署磁盤陣列_磁盤陣列_05

刪除分區

只有一個分區時默認刪除該分區

fdisk /dev/sdb
d        # 刪除分區
w        # 保存退出

Centos7部署磁盤陣列_數據_06

Centos7部署磁盤陣列_磁盤陣列_07

創建兩個主分區

創建兩個主分區,大小分別為3G、2G,分區類型為Linux (默認)

fdisk /dev/sdb
n        # 創建新分區
p        # 創建主分區
+3G      # 從起始分區上加3G
其他同理
w        # 保存退出

Centos7部署磁盤陣列_磁盤陣列_08

# 查看分區情況
fdisk -l /dev/sdb


# 分區詳情
分區名: /dev/sdb1
分區大小: 3145728 / 1024 = 3072M = 3G
分區類型: Linux


分區名: /dev/sdb2
分區大小: 2096128 / 1024 = 2047M ≈ 2G
分區類型: Linux

Centos7部署磁盤陣列_數據_09

創建一個主分區一個邏輯分區

創建一個主分區,大小為2G,分區類型為Linux (默認)

創建一個邏輯分區,大小為512M,分區類型為Linux (默認)

fdisk /dev/sdb
n        # 創建新分區
p        # 創建主分區
+2G      # 從起始分區上加2G


n        # 創建新分區
e        # 創建邏輯分區
+512M    # 從起始分區上加512M
w        # 保存退出

Centos7部署磁盤陣列_磁盤陣列_10

# 查看分區情況
fdisk -l /dev/sdb


# 分區詳情
分區名: /dev/sdb1
分區大小: 2097152 / 1024 = 2048M = 2G
分區類型: Linux


分區名: /dev/sdb2
分區大小: 524288 / 1024 = 512M = 0.5G
分區類型: Linux

Centos7部署磁盤陣列_磁盤陣列_11

磁盤格式化

創建完分區後需要將磁盤進行格式化才可以使用

# 這裏將其格式化為ext4,如需其他格式可以參考下圖
mkfs.ext4 /dev/sdb1

Centos7部署磁盤陣列_磁盤陣列_12

磁盤掛載與卸載  

臨時掛載分區

該掛載方式會在計算機重啓後自動卸載設備

mkdir /file      # 創建文件夾作為掛載點
mount /dev/sdb1 /file    # 將sdb1掛載到 /file


df -Th      # 查看掛載詳情

Centos7部署磁盤陣列_磁盤陣列_13

卸載分區

# 可以指定文件系統或掛載點進行卸載
umount /file
umount /dev/sdb1

Centos7部署磁盤陣列_數據_14

自動掛載分區

# 格式
設備名 掛載點 文件系統類型 掛載參數 dump備份 啓動檢查(0否1是)
//如果不知道文件系統類型可以臨時掛載後使用 df -T 命令查看


# 掛載參數
defaults(默認參數)  rw(讀寫)  ro(只讀)  noexec(禁止執行程序)


vim /etc/fstab
/dev/sdb1 /file ext4 defaults 0 0

Centos7部署磁盤陣列_文件系統_15

以UUID的方式掛載

blkid      # 查看設備的UUID


vim /etc/fstab
UUID=e2710606-4d99-4bd9-bf18-334fce4da66e /file ext4 defaults 0 0

Centos7部署磁盤陣列_數據_16

Centos7部署磁盤陣列_文件系統_17

mount -a   # fstab中所有文件系統
df -Th     # 查看掛載詳情

Centos7部署磁盤陣列_數據_18

磁盤陣列部署

mdadm基本用法   

常用參數

-C    # 創建RAID設備
-v    # 顯示創建的詳細系
-l    # 指定RAID級別
-n    # 指定磁盤數量
-x    # 指定熱備盤數量


-D    # 顯示RAID詳細信息
-S    # 停止陣列
-f    # 把RAID中的某個磁盤標記為有問題的磁盤
-r    # 把RAID中的某個磁盤移出RAID
-a    # 向RAID中添加磁盤

RAID0  

原理: RAID0原理是把連續的數據分散到多個磁盤中存取,系統有數據請求就可以被多個磁盤並行的執行,每個磁盤執行屬於它自己的那部分數據請求,這種數據上的並行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能

優缺點: RAID0存儲性能、讀寫高但不是很可靠

容量: RAID0容量總和為多塊磁盤的總和

磁盤分區

要求: 掛載兩塊5G硬盤,將兩塊硬盤分區為兩個主分區,分區類型為 Linux raid autodetect

將RAID0格式化為ext4文件系統類型,設備名為md0,將該磁盤掛載到/r0目錄下

fdisk /dev/sdb
n        # 創建分區
p        # 創建主分區
t        # 指定文件系統類型
fd       # 文件系統類型為 Linux raid autodetect
w        # 保存退出


另一塊硬盤同上

Centos7部署磁盤陣列_磁盤陣列_19

# 查看分區情況
fdisk -l /dev/sd{b..c}

Centos7部署磁盤陣列_文件系統_20

創建RAID 0磁盤陣列

mdadm -C -v /dev/md0 -l0 -n2 /dev/sd{b..c}1


# 參數説明
-C      # 創建
-v      # 輸出詳細信息(後面追加要生成的設備)
-l0     # 指定RAID為RAID0
-n2     # 硬盤數量為2,後面指定硬盤的文件路徑

Centos7部署磁盤陣列_文件系統_21

格式化分區

mkfs.ext4 /dev/md0

Centos7部署磁盤陣列_文件系統_22

掛載分區

mount /dev/md0 /file    # 掛載分區
df -Th查看磁盤狀態

Centos7部署磁盤陣列_磁盤陣列_23

查看RAID設備詳細信息

mdadm -D /dev/md0

Centos7部署磁盤陣列_數據_24

RAID1  

原理: RAID1在成對的獨立磁盤上產生互為備份的數據,當原始數據忙碌時可以直接從鏡像拷貝中讀取數據,因此RAID1可以提高讀取性能

優缺點: 把硬盤A的數據備份到硬盤B中,成本高、不具備拓展性但可靠

容量: 多塊磁盤容量總和的一半

磁盤分區

要求: 掛載三塊5G硬盤(兩塊用於RAID1,一塊用於頂替備用(熱備盤)),將三塊硬盤都分區為一個主分區,分區類型為Linux raid autodetect,將RAID1格式化為ext4文件系統類型,設備名為md1,將該磁盤掛載到/file目錄下

將三塊磁盤都分區為1個主分區,每個分區5G
將每個分區的類型都設置為Linux raid autodetect


分區方法同上,不多闡述

Centos7部署磁盤陣列_文件系統_25

創建RAID 1磁盤陣列

mdadm -C -v /dev/md1 -l1 -n2 /dev/sd{b..c}1 -x1 /dev/sdd1


# 參數説明
-l1      # 指定RAID為RAID1
-x1      # 指定一塊硬盤為頂替備用(熱備盤),當RAID1某塊磁盤壞掉時,自動頂替並備份

Centos7部署磁盤陣列_磁盤陣列_26

格式化分區

mkfs.ext4 /dev/md1

Centos7部署磁盤陣列_數據_27

掛載分區

mount /dev/md1 /file
df -Th

Centos7部署磁盤陣列_磁盤陣列_28

熱備盤測試

查看RAID設備詳細信息

mdadm -D /dev/md1

Centos7部署磁盤陣列_數據_29

在上圖中可以看到RAID1的兩塊硬盤在正常工作

在掛載點存儲一些數據後將某塊硬盤移除,模擬設備損壞

touch /file/test{1..99}.txt

Centos7部署磁盤陣列_磁盤陣列_30

將硬盤移除後查看RAID狀態

可以看到熱備盤已經在工作狀態了,數據也沒有損壞或丟失

mdadm -f /dev/md1 /dev/sdb1
mdadm -D /dev/md1

Centos7部署磁盤陣列_數據_31

添加熱備盤

當RAID1中的某個硬盤異常後熱備盤馬上頂替並開始備份數據

而現在已經沒有熱備盤了,需要再添加新的熱備盤

# 移除損壞盤
mdadm /dev/md1 -r /dev/sdb1
# 添加新熱備盤
mdadm /dev/md1 --add /dev/sdb1

Centos7部署磁盤陣列_數據_32

RAID5  

原理: RAID5可以理解為RAID0和RAID1的折中方案,RAID5具有和RAID0相近的讀取速度,只是多了個奇偶校驗信息,RAID5的控件利用率要比RAID1高。RAID5數據以塊為單位分佈到各個硬盤,不對數據進行備份,而是把數據和對應的奇偶效驗信息存儲到各個磁盤中,並且奇偶效驗信息和對應的數據分別存放在不同的盤上

優缺點: 高讀取、高可靠

容量: 容量為n-1n  (n為磁盤容量的總和)

磁盤分區

要求: 掛載四塊5G硬盤(三塊用於RAID5,一塊用於頂替備用(熱備盤)),將四塊硬盤都分區為一個主分區,分區類型為Linux raid autodetect,將RAID5格式化為ext4文件系統類型,設備名為md5,將該磁盤掛載到/file目錄下

將四塊磁盤都分區為1個主分區,每個分區5G
將每個分區的類型都設置為Linux raid autodetect


分區方法同上,不多闡述

Centos7部署磁盤陣列_磁盤陣列_33

創建RAID 5磁盤陣列

mdadm -C -v /dev/md5 -l5 -n3 /dev/sd{b..d}1 -x1 /dev/sde1

Centos7部署磁盤陣列_磁盤陣列_34

格式化分區

mkfs.ext4 /dev/md5

Centos7部署磁盤陣列_文件系統_35

掛載分區

mount /dev/md5 /file
df -Th

Centos7部署磁盤陣列_文件系統_36

Centos7部署磁盤陣列_數據_37

熱備盤測試方法同上不多闡述

RAID10  

原理: RAID10是RAID1與RAID0互相結合的產物,在連續分割讀寫多個磁盤的同時為每一塊磁盤進行冗餘,當RAID10中有一個硬盤損壞時,其他三個硬盤會繼續工作。RAID10是先將磁盤分為兩組作為RAID1,再將兩組RAID1作為RAID0運作

優缺點: RAID10同時擁有RAID1與RAID0的優點(讀寫快、可靠性高),但CPU佔用率也高,磁盤利用率低

容量: RAID1磁盤陣列容量總和的一半

Centos7部署磁盤陣列_磁盤陣列_38

磁盤分區

要求: 掛載五塊5G硬盤(四塊用於RAID10,一塊用於頂替備用(熱備盤)),將五塊硬盤都分區為一個主分區,分區類型為Linux raid autodetect,將RAID10格式化為ext4文件系統類型,設備名為md10,將該磁盤掛載到/file目錄下

將五塊磁盤都分區為1個主分區,每個分區5G
將每個分區的類型都設置為Linux raid autodetect


分區方法同上,不多闡述

Centos7部署磁盤陣列_文件系統_39

創建RAID 10磁盤陣列

mdadm -C -v /dev/md10 -l 10 -n4 /dev/sd{b..e}1 -x1 /dev/sdf1

Centos7部署磁盤陣列_數據_40

格式化分區

mkfs.ext4 /dev/md10

Centos7部署磁盤陣列_磁盤陣列_41

掛載分區

mount /dev/md10 /file


df -Th
mdadm -D /dev/md10

Centos7部署磁盤陣列_數據_42

Centos7部署磁盤陣列_磁盤陣列_43

刪除磁盤陣列  

umount /dev/md10      # 取消掛載(fatab自動掛載也要刪除)
mdadm -S /dev/md10    # 停止該RAID
mdadm --misc --zero-superblock /dev/sd{b..f}1    # 移除磁盤(磁盤文件名自己看着修改)


# /dev/sd{b..f}1 等於 /dev/sdb1 /dev/sdc1 ... /dev/sdf1

Centos7部署磁盤陣列_磁盤陣列_44