磁盤管理

硬盤分區(disk partition)

項目名稱:
存儲管理、進程管理

項目需求:
1、在企業服務器上安裝新硬盤,對磁盤進行分區、格式化、掛載處理
2、根據企業服務器數據業務的不同,採用不同的raid技術來保證數據的讀寫速度、數據安全
3、在企業的存儲服務器上採用LVM邏輯卷技術來實現容量的動態調整
4、在服務器的運維工作中隨機對系統進程進行分析和管理

項目測試:

原理概述:存儲管理是系統中必不可少的技術,Linux系統中支持多種存儲管理技術。在企業服務器中需要根據業務的不同來分別使用分區、raid、LVM邏輯卷等技術。

測試環境:Linux系統、ssh遠程管理

項目實施:

操作指南:
磁盤分區管理
需求:服務器上裝了一塊新硬盤,需要能正常往硬盤上寫入數據。

新硬盤的相關技術處理:
1、分區。對硬盤上的數據進行分類管理。類似於windows中的c、d、e盤。
2、格式化。在硬盤的分區上創建文件分配表。也稱爲創建文件系統。
3、掛載分區。將硬盤分區中的文件讀到一個文件夾中。
準備:將Linux虛擬機用init 0正常關機,然後添加4塊5G的硬盤。然後創建快照“4塊硬盤”。

查看硬盤的型號:smartctl -a /dev/sda
查硬盤等塊設備:lsblk(list block)

磁盤管理

---------sda1代號的意思
s是表示硬盤接口是SCSI(小型計算機接口)。
d表示disk磁盤。
a表示主板上第一個接口上的第一塊硬盤。
1表示第一個分區

查所有的硬盤分區表:fdisk -l |grep sd

GPT分區管理:parted命令
GPT:是GUID(Globally Unique Identifier)Partition Table全局唯一標識分區表的縮寫。
GPT分區表中只有主分區這個管理概念。允許創建128個主分區。GPT分區表可以用來管理總容量大於2TB以上的硬盤。硬盤的UUID號可用blkid來查。

GUID:全局唯一標識符(GUID,Globally Unique Identifier)是一種由算法生成的二進制長度爲128位的數字標識符。GUID主要用於在擁有多個節點、多臺計算機的網絡或系統中。GUID標識符由隨機產生的字母、數字混合
組成。
------------------ 。

要求:將2GB的硬盤sdb用GPT分區表進行管理,要求給sdb硬盤創建2個主分區,第1個主分區容量是1.5G,另一個主分區的容量使用所有剩餘空間。
查塊設備列表:lsblk
定義分區表標籤(即格式):parted -s /dev/sdb mklabel gpt
創建第一個1.5G的主分區:parted -s /dev/sdb mkpart primary 1M 1.5G (primary 主要的)
創建第2個分區(使用所有的剩餘空間-1)parted -s /dev/sdb mkpart primary '1.5 -1'
查看sdb硬盤的分區表信息lsblk

磁盤管理

parted命令的附加功能:
顯示(print)sdb硬盤的分區表:parted /dev/sdb p
刪除sdb硬盤的2號分區:parted -s /dev/sdb rm 2

mount掛載:將分區的文件系統內容讀取到一個目錄中。訪問這個掛載點目錄就等同於訪問這個分區文件系統中的文件。其實windows中的c、d等盤符就是自動掛載的目錄。例如,在windows中插入U盤後會被自動分配到一個盤符,這就是微軟在後臺做的一個mount自動掛載的程序。

要求:將sdb硬盤的第1個分區格式化成ext4文件系統,將第2個分區格式化成xfs文件系統。將第1個分掛載到/mnt/sdb1目錄中,將第2個分掛載到/mnt/sdb2目錄中。分別往分區的掛載點目錄中寫入一些數據。
格式化一號分區:mkfs.ext4 /dev/sdb1
格式化二號分區:mkfs.xfs /dev/sdb2
創建掛載點目錄:mkdir -pv /mnt/sdb{1,2}
手動掛載:mount /dev/sdb1 /mnt/sdb1 ;
mount /dev/sdb2 /mnt/sdb2;
lsblk
磁盤管理
寫入數據:touch /mnt/sdb1/{a.mp3,b.mp4}
cp -v /etc/host* /mnt/sdb2
遞歸(-R)顯示目錄中的文件名列表:ls -R /mnt

---------------------------
卸載掛載點:umount    /dev/sdb1   ;umount   /dev/sdb2
刪除sdb1、sdb2分區:parted    -s    /dev/sdb1  rm   1
                                                                        parted   -s   /dev/sdb2   rm   2
或者   parted    -s   /dev/sdb   mklabel   msdos

---------------------------------------------------------------

MBR分區表管理

MBR:是主引導記錄(main boot record)的s縮寫。
MBR:是保存在硬盤的0磁道0柱面1扇區的位置,佔用512字節(因爲一個扇區默認的大小是512字節)。其中bootloader引導程序佔用446字節,DPT(disk partition tabel)分區表佔用64字節,magic佔用2字節。

MBR的分區表特點:
0.只能管理總容量在2TB以內的硬盤。
1.最多隻允許分4個主分區,因爲DPT分區表總容量是64字節,每個分區佔用16字節,即64/16=4
2.如果想分4個以上的分區,可採用分一個主分區(primary)和一個擴展分區(extend),然後在擴展分區只創建邏輯(logical)分區來實現。
3.主分區編號爲1~4,第一個邏輯分區的編號默認爲5.
4.只能在主分區和邏輯分區上格式化創建文件系統。並且只能在主分區和邏輯分區上寫入文件。

硬盤分5個分區的方案(用MBR分區表)
方案一、1個主分區,一個擴展分區,4個邏輯分區。
方案二、3個主分區,一個擴展分區,2個邏輯分區。

MBR分區練習:將2GB的硬盤sdb用MBR分區表進行管理,要求給sdb硬盤創建1個容量爲1.2G的主分區,再創建一個擴展分區容量爲所有剩餘空間。在擴展分區中創建2個邏輯分區,第1個邏輯分區容量爲600M,第2個邏輯分區的容量爲所有剩餘空間。

cfdisk /dev/sdb
創建主分區:n新建==>p主分區==>1.2G回車==>beginning回車==>W(大寫)保存==>yes回車
創建邏輯分區1:選free空閒空間==> n新建==>l邏輯分區==>600M回車==>beginning回車
創建邏輯分區2:選free空閒空間==> n新建==>l邏輯分區==>回車==>beginning回車==>W保存(這是大寫的)==>yes回車==>q鍵退出
lsblk
磁盤管理


將sdb硬盤的第1個分區格式化成ext4文件系統,將第1、2個邏輯分區格式化成xfs文件系統。將第1個分掛載到/mnt/data目錄中,將第1、2個邏輯分區分別掛載到/mnt/mysql、/mnt/web目錄中。分別往分區的掛載點目錄中寫入一些數據。
格式化分區:mkfs.xfs /dev/sdb1
mkfs.ext4 /dev/sd5
mkfs.ext4 /dev/sd6
創建掛載點目錄:mkdir -pv /mnt/{data,mysql,web}
手動掛載:mount /dev/sdb1 /mnt/data
mount /dev/sdb5 /mnt/mysql
mount /dev/sdb6 /mnt/web

lsblk
磁盤管理
寫入數據:touch /mnt/data/{a.txt}
touch /mnt/mysql/{b.txt}
touch /mnt/web/{c.txt}
ls -R /mnt/
把sdb分區的文件系統卸載掉,刪除sdc、sdd硬盤的分區表
umount /dev/sdb1
umount /dev/sdb5
umount /dev/sdb6
parted -s /dev/sdb mklabel msdos

fstab自動掛載

mount 手動掛載的缺點:當系統重啓後,用戶必須重新手動將分區的文件系統掛載到指定的目錄。但是用戶可以將mount手動掛載的命令寫到/etc/rc.d/rc.local開機運行腳本文件中,系統在啓動時會自動執行rc.local腳本中的命令。

fstab自動掛載配置文件:fstab是file system table文件系統表的縮寫。是用來記錄磁盤分區設備自動掛載信息的配置文件。系統啓動時會讀取/etc/fstab文件中的掛載配置信息,並自動掛載裏面的設備。

查看/etc/fstab配置文件內容,熟悉fstab文件格式。
cat /etc/fstab 內容如下(可用man 5 fstab瞭解文件的格式)
分區設備 掛載點目錄 文件系統類型(格式) 掛載選項 dump備份 fsck檢查
/dev/mapper/centos-root / xfs defaults 0 0
UUID=8b947ec7-6d78-4121-8a4c-7aaabf3a221e /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0

格式說明:
第1列:分區設備,可以是磁盤的分區設備名、分區的UUID值、分區的label標籤。UUID值、label標籤可用blkid命令查。
第2列:掛載點目錄,必須是已存在的空目錄。
第3列:文件系統類型,也就是用mkfs、mkfs.ext4、mkfs.xfs格式化創建的文件系統格式。文件系統格式可以是ext4、、xfs、vfat、ntfs、iso9660、nfs、smb等。
第4列:掛載選項,通常是defaults默認,default代表的選項是rw可讀可寫,suid超級權限,dev設備,exec可執行,auto自動,nouser無用戶,and async異步。選項還可以是ro只讀、usrquota用戶配額、grpquota組配額。
第5列:dump備份,即是否使用dump工具進行數據備份。0表示禁用,1表示啓動。
第6列:fsck檢查,即是否使用fsck工具進行磁盤掃描檢查。0表示禁用,1表示啓動。

要求將sdb硬盤的三個分區的文件系統卸載。並用lsblk或df -hT查看掛載信息。
查掛載信息:lsblk 或 df -hT
卸載分區的文件系統:umount -v /dev/sdb{1,5,6}
查掛載信息:lsblk 或 df -hT

採用fstab文件實現sdb硬盤三個分區的文件系統自動掛載。
第1步,在fstab配置文件中添加自動掛載設置。
vim /etc/fstab 在文件最後添加如下內容
#分區設備 掛載點 文件系統類型 掛載選項 dump備份 fsck檢查
/dev/sdb1 /mnt/data ext4 defaults 0 0
/dev/sdb5 /mnt/mysql xfs defaults 0 0
/dev/sdb6 /mnt/web xfs defaults 0 0
第2步,用mount -av做自動掛載測試。用lsblk或df -hT顯示已掛載的分區文件系統信息
mount -av
lsblk 或 df -hT
第3步,此步驟可以不做,僅用於驗證效果。reboot重啓linux系統,系統啓動後,用lsblk或df -hT看sdb硬盤分區的文件系統是否自動掛載上了。
reboot 重啓
lsblk

mount命令詳解:
用法:mount [選項] 分區設備 掛載點
選項:
-a, --all 掛載 fstab 中的所有文件系統
-h, --help 顯示此幫助並退出
-o, --options <列表> 掛載選項列表,以英文逗號分隔,選項用man mount查幫助手冊
-r, --read-only 以只讀方式掛載文件系統(同 -o ro)
-t, --types <列表> 限制文件系統類型集合,文件系統格式類型通常有ext4、xfs、vfat、ntfs、smb、nfs、swap、iso9660等
--source <源> 指明源(路徑、標籤、uuid)
--target <目標> 指明掛載點
-v, --verbose 打印當前進行的操作
-w, --rw, --read-write 以讀寫方式掛載文件系統(默認)

源(設備):
-L, --label <標籤> 同 LABEL=<label>
-U, --uuid <uuid> 同 UUID=<uuid>
LABEL=<標籤> 按文件系統標籤指定設備
UUID=<uuid> 按文件系統 UUID 指定設備
PARTLABEL=<標籤> 按分區標籤指定設備
PARTUUID=<uuid> 按分區 UUID 指定設備
<設備> 按路徑指定設備
<目錄> 綁定掛載的掛載點(參閱 --bind/rbind)
<文件> 用於設置迴環設備的常規文件

操作:
-B, --bind 掛載其他位置的子樹(同 -o bind)
-M, --move 將子樹移動到其他位置
-R, --rbind 掛載其他位置的子樹及其包含的所有掛載

mount是例:執行如下功能的命令。
創建掛載點目錄:mkdir -pv /tmp/{c..g}
顯示磁盤塊設備清單:lsblk
將/dev/sda1分區掛載到/tmp/c目錄中:mount -t xfs /dev/sda1 /tmp/c
將/dev/sda1分區以只讀方式掛載到/tmp/d目錄中:mount -o ro /dev/sda1 /tmp/d

以uuid方式將/dev/sda1分區掛載到/tmp/e目錄中:
blkid /dev/sda1;
mount UUID="8b947ec7-6d78-4121-8a4c-7aaabf3a221e" /tmp/e

給/dev/sda1分區設置label標籤,以label標籤的方式掛載sda1分區到/tmp/f目錄中:

將/usr目錄掛載到/tmp/g目錄中(通常用於文件共享時):mount -B /usr /tmp/g


fdisk分區命令:
功能:對硬盤進行分區的查、增、刪、改等操作。
用法:fdisk [選項] 磁盤設備
選項:-l 顯示分區表信息

例:用lsblk顯示磁盤塊設備,用fdisk命令顯示sdb硬盤的分區表信息
磁盤管理

例:用fdisk命令對sdb硬盤進行分區管理,要求創建一個1G的主分區,創建一個擴展分區使用所有剩餘空間,在擴展分區中創建2個邏輯分區,第一個邏輯分區容量爲300M,第2個邏輯分區使用所有剩餘空間。每創建一個分區就用p查一下分區表信息。
管理sdb硬盤的分區表: fdisk /dev/sdb

fdisk的常用快捷鍵:
m:顯示命令幫助
p 顯示分區表信息(print)
n 新建一個分區(new)
d 刪除一個分區(delete)
w 保存並退出(write)
q 不保存退出(quit)
l 顯示(list)分區的文件系統類型標籤代號
t 修改分區的文件系統類型(type)標籤
a 激活(active),即給分區添加bootable允許引導的標記(通常用於boot引導程序的分區)
顯示分區表信息: p ====
創建1G的主分區(primary):
命令(輸入m獲取幫助):n ====
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
select(default p):回車 ======
using default response p
分區號(1-4,默認 1):回車 =====
起始扇區(2048-4194303,默認爲2048):回車 =====
將使用默認值2048
Last 扇區, +扇區 or +size{K,M,G} (2048-4194303,默認爲 4194303):+1G ===
分區1已設置爲LInux類型,大小設爲1GiB

磁盤管理

創建擴展分區,使用所有剩餘空間:
顯示分區表信息:p ===
命令(輸入 m 獲取幫助):n ===
Partition type:
p primary 主分區(1 primary, 0 extended, 3 free)
e extended 擴展分區
Select (default p): e ===擴展分區
分區號 (2-4,默認 2):回車 ===
起始 扇區 (2099200-4194303,默認爲 2099200):回車 ===
將使用默認值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-4194303,默認爲 4194303):回車 ===
將使用默認值 4194303
分區 2 已設置爲 Extended 類型,大小設爲 1023 MiB

給第1個主分區添加bootable標記:
命令(輸入 m 獲取幫助):a ===
分區號 (1,2,5,6,默認 6):1 ===
命令(輸入 m 獲取幫助):p ===
設備 Boot Start End Blocks Id System
/dev/sdb1 * 2048 2099199 1048576 83 Linux

創建邏輯分區1,容量300M:
顯示分區表信息:p ===
命令(輸入 m 獲取幫助):n ===
Partition type:
p primary 主分區(1 primary, 1 extended, 2 free)
l logical 邏輯分區(numbered from 5)
Select (default p): l ===邏輯分區
添加邏輯分區 5
起始 扇區 (2101248-4194303,默認爲 2101248):回車 ===
將使用默認值 2101248
Last 扇區, +扇區 or +size{K,M,G} (2101248-4194303,默認爲 4194303):+300M ===
分區 5 已設置爲 Linux 類型,大小設爲 300 MiB
顯示分區表信息:p ===

創建邏輯分區2,容量爲所有剩餘空間:
操作方法請參照邏輯分區1的操作步驟。

保存分區表並退出:w
分別用lsblk和fdisk -l顯示sdb硬盤的分區表信息:lsblk /dev/sdb ; fdisk -l /dev/sdb

磁頭:負責在磁盤上完成讀寫定位操作的部件。系統讀出255磁頭數,並不是說硬盤裏面真的有255個磁頭,而是系統從邏輯上對磁頭的一種管理方法。
磁道track:當磁頭在某一固定位置時,盤片轉1圈所形成的圓。
扇區sector:將磁道等分成一定大小的弧段,每扇區默認爲512字節
柱面cylinders:同一半徑多個磁道就形成了柱面。
block塊:默認的一個塊是4096字節(8扇區512字節),系統讀文件時,一次最少會讀取1個塊。
硬盤容量=磁頭數
扇區數柱面數512字節
在0磁頭0柱面的第一個扇區保存着MBR(mater boot record)主引導記錄與DPT(disk part table)分區表信息,2字節存magic編號。單個扇區容量爲512bytes組成,主引導記錄需要佔用446bytes,分區表的爲64bytes,而每記錄一個分區信息需要16bytes,那麼問題來了,好像只能記錄4個分區信息?

MBR分區表的概念
primary主分區:主要的分區。
extend擴展分區:用來擴展管理邏輯分區的。
logical邏輯分區:擴展分區中的成員分區。邏輯分區的編號默認從5開始。

常見的MBR分區表方案:
1個主分區+1個擴展分區+多個邏輯分區。

swap交換分區
虛擬內存:將硬盤的一部分空間當作內存來使用。用來緩解物理內存不足的問題。
SWAP即交換分區是一種類似於Windows系統虛擬內存的功能,將一部分硬盤空間虛擬成內存來使用,從而解決內存容量不足的情況,因爲SWAP畢竟是用硬盤資源虛擬的,所以速度上比真實物理內存要慢很多,一般只有當真實物理內存耗盡時纔會調用SWAP。

硬盤已經沒有剩餘空間來創建swap分區時,在硬盤上創建一個swap文件來充當swap分區
dd if=/dev/zero of=/tmp/swap bs=1G count=2
說明:if是指定輸入文件,of是指定輸出文件,bs是指定基本容量大小,count是讀寫的總次數,swap文件的容量等於bs*count=2G
mkswap /tmp/swap(2、使用mkswap將/tmp/swap文件格式化爲swap格式:)
swapon /tmp/swap(啓用此文件)
swapon -s查看swap狀態
free -h 查看內存狀態
swapoff /tmp/swap (關閉此文件)
要想開機任然有效
vim /etc/rc.local
swapon /opt/swap

磁盤管理

磁盤管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章