【講清楚,說明白!】磁盤管理

目錄:
(一)硬盤結構介紹
(二)如何對分區進行管理
(三)對文件系統的管理
(四)管理swapredis


(一)硬盤結構介紹
(1.1)咱們的硬盤拆開後是由盤片構成的,咱們發現每一個盤片上都會有一層層的圓圈,兩個圓圈中間的部分咱們稱之爲磁道,每個盤片都會被分紅一塊一塊的,每一塊咱們稱之爲扇區,每個扇區的大小爲512字節(512B)。每個磁道由外到內分別是磁道0、磁道一、磁道2等,每個磁道上也會分紅扇區0、扇區一、扇區2等,例如咱們的硬盤起始位置稱爲0磁道0扇區。組成硬盤的最小結構咱們稱爲「扇區」,組成文件系統的最小單位咱們稱爲「block」,因此扇區也是咱們在劃分分區時的最小單位。
【講清楚,說明白!】磁盤管理
(1.2)在咱們的硬盤中是由不少扇區構成的,例如咱們的第一個分區從2048扇區開始到6000扇區結束,接着咱們對分區進行格式化,默認的文件系統block的大小是4k,也就是8個扇區,所以系統默認爲8個扇區組成一個block。
(1.3)如今咱們擁有一塊硬盤,咱們假設一共有10000個扇區,我麼一共分紅4個分區,其中sda1分區從2048扇區開始到4000扇區結束、sda2分區從4001扇區開始到6000扇區結束、sda3分區從6001扇區開始到8000扇區結束、sda4分區從8001扇區開始到10000扇區結束。爲了記錄咱們系統中的分區劃分的信息,在咱們硬盤的第一個扇區中記錄了各類各樣的信息,咱們稱之爲MBR,主引導記錄,這第一個扇區的大小是512B,其結構爲三部分構成:其中第一個部分佔用了446個字節,即BootLoader引導加載器,主要的做用是將咱們的系統引導起來;第二部分佔用了64個字節,此處爲分區表,主要記錄的就是咱們系統分區開始和結束的具體扇區的信息;第三個部分大小佔用了2B,此處表示的結束符。
【講清楚,說明白!】磁盤管理
(1.4)須要注意的是64B分區表主要記錄的是主分區和擴展分區信息,不能記錄其餘的分區。在系統中主分區指的是直接從硬盤上劃分,能夠格式化使用的;擴展分區指的是直接從硬盤上劃分,可是不能格式化使用的,可是在其上能夠劃分更多的分區;邏輯分區主要就是從擴展分區上進行劃分的,不能直接從硬盤上直接進行劃分的。
(1.5)同時系統要求分區只能有一個擴展分區,分區表每記錄一個分區的信息會消耗16個字節,所以正常狀況下64B的分區表最多隻能劃分64/16=4個分區。若是咱們但願可以建立出更多的分區時,咱們須要經過建立擴展分區,而後在擴展分區建立邏輯分區解決,對於這樣的分區方式咱們稱之爲MBR結構的硬盤,它的兼容性比較好,不適合硬盤容量大於2T的硬盤進行分區。對於大於2T大小的硬盤咱們通常使用GPT來進行管理,它是一種新的硬盤的管理方式,GPT它是能夠劃分128個主分區的。通常咱們是能夠本身選擇將硬盤劃分爲哪一種格式的,這個選擇的過程,咱們稱之爲初始化磁盤標籤。
(1.6)通常咱們在對MBR結構的硬盤操做的時候使用的是fdisk命令;當咱們對GPT格式的硬盤操做的時候,咱們使用的是gdisk命令;若是一塊新的硬盤咱們並不清楚它的格式,咱們若是想要對這塊硬盤進行操做,此時咱們就可使用parted命令,它既能夠對MBR格式的硬盤進行操做,也能夠對GPT格式的硬盤進行操做。服務器


(二)如何對分區進行管理
(2.1)圖形化界面操做
(2.1.1)咱們在vms002主機上再從新添加一塊20G的硬盤,而後開機進入系統當中。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.1.2)首先咱們在圖形化的界面進行操做,咱們選擇「工具」--「磁盤」,而後即可以看到咱們本身添加的20G的硬盤(圖2-5),而後咱們即可以本身選擇是經過MBR仍是GPT格式的硬盤進行分區(圖2-6)。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.1.3)咱們選擇MBR的方式進行格式化(圖2-7),而後咱們開始劃分分區,咱們自定義一個xfs類型的分區,建立2G的分區大小(圖2-8)。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.2)
(2.2.1)以上咱們是經過圖形化的界面方式對硬盤進行分區的,咱們也是可使用命令行的方式進行操做的,因爲剛剛圖形化界面的操做將硬盤格式化爲GPT的格式了,因此咱們首先將vms002主機的GPT格式先刪除掉,而後咱們再設置硬盤的格式爲MBR,也能夠設置格式類型爲loop代表硬盤格式設置爲未知類型。
# parted /dev/sdb mklabel gpt---將vms002主機的GPT格式先刪除掉
# parted -s /dev/sdb mklabel msdos---使用-s參數指明直接修改硬盤類型不須要交互操做
# parted -s /dev/sdb mklabel loop---若是咱們不須要任何的格式類型,可使用loop
【講清楚,說明白!】磁盤管理
(2.2.2)若是咱們但願查看硬盤的全部分區信息,咱們可使用以下的命令操做。
# fdisk -l---能夠顯示咱們當前系統的全部硬盤的分區信息
# fdisk -l /dev/sda---查看/dev/sda分區的信息
# fdisk -l /dev/sdb---查看/dev/sdb分區的信息
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.2.3)如今咱們須要對sdb分區來進行劃分分區,咱們使用fdisk命令來進行操做,進入交互界面後,咱們若是須要獲取幫助,咱們能夠輸入指令m(圖2-14);若是咱們須要刪除分區,能夠輸入指令d;若是咱們須要列出分區的類型,咱們能夠輸入指令l;若是咱們須要添加一塊新的分區,能夠輸入指令n;若是咱們須要打印分區表,咱們能夠輸入指令P;若是咱們對交互界面的操做不保存並退出,咱們能夠輸入指令q;若是咱們但願可以保存退出,咱們能夠輸入指令w。
# fdisk /dev/sdb---設置對sdb進行劃分分區
【講清楚,說明白!】磁盤管理
(2.2.4)咱們輸入p能夠打印當前的分區狀況,接着咱們輸入n能夠建立一個新的分區,咱們知道主分區加擴展分區最多隻能劃分4個,咱們如今先建立一個分區,同時設置分區的大小爲2G,咱們知道2G等於2*1024M等於2*1024*1024K等於2*1024*1024*2扇區,而系統中分區開始的位置是從2048扇區開始的,因此咱們設置的2G大小的扇區的結束位置應該在(2048+2*1024*1024*2-1)即4196351這個點的扇區的位置。
【講清楚,說明白!】磁盤管理
(2.2.5)因爲上面咱們計算扇區的方式很是的生澀難懂,通常是不會用到的,其實咱們還可使用更方便的方式進行添加,咱們直接添加一個2G大小的分區便可。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.2.6)接着咱們按照相同的方式劃分出以下的兩個主分區。
【講清楚,說明白!】磁盤管理
(2.2.7)由於咱們已經劃分了3個主分區,若是咱們還想繼續再多劃分3個分區,則此時咱們應該最後一個分區劃分爲擴展分區,而後在擴展分區上建立3個邏輯分區便可。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.3)
(2.3.1)咱們也能夠在只建立2個主分區的狀況下,將剩餘的空間所有劃分給邏輯分區使用。
【講清楚,說明白!】磁盤管理
(2.3.2)而後在擴展分區上建立5個邏輯分區,每一個邏輯分區的大小爲2G。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(2.3.3)每一個分區的用途是不同的,咱們看分區的ID列都是以數字表示的,有的分區是能夠直接格式化使用的,例如Linux 83,可是有的分區時不能夠直接格式化使用的,只能用來作其餘用途,例如Extended 5。咱們在交互界面輸入l便可查看全部分區類型的解釋。
【講清楚,說明白!】磁盤管理
(2.3.4)咱們將邏輯分區5-9都轉換爲了LVN類型的分區
【講清楚,說明白!】磁盤管理
(2.3.5)若是咱們對以上的操做不想保存,那麼咱們直接輸入q退出便可,若是咱們對執行的操做時承認的而且須要保存,咱們輸入w便可保存。咱們在非系統盤裏,建立一個分區會自動同步到分區表,若是咱們在非系統盤裏,每每不會自動同步分區表,所以這個時候咱們應該要使用partprobe手動同步分區表。
# partprobe /dev/sdb---咱們應該要使用手動同步分區表(RHEL 7系統)
# partx -a /dev/sdb---在RHEL 6系統中的分區同步方式
【講清楚,說明白!】磁盤管理app


(三)對文件系統的管理
(3.1)建立完分區後咱們須要建立文件系統,即進行文件系統的格式化。咱們能夠選擇將文件系統格式化爲xfs文件系統的類型,xfs文件系統支持大數據,xfs文件系統最大可支持256EB,單個文件最大可達8EB,基本ext4文件系統支持的功能,xfs文件系統都是支持的,可是xfs文件系統惟一的劣勢是不支持文件系統的縮小。咱們使用mkfs命令,使用-t選項指明類型,使用-f選項指明直接操做,此時咱們便實現了將/dev/sdb1分區格式化爲xfs文件系統了。
# mkfs -t xfs -f /dev/sdb1---指定sdb1分區的文件系統類型爲xfs
【講清楚,說明白!】磁盤管理
(3.2)以上的方式咱們能夠對/dev/sdb1的分區進行格式化,咱們還能夠按照下面的方式進行格式化操做(圖3-2),若是咱們須要指定文件系統的最小單位block的大小,咱們也能夠按照以下的方式操做(圖3-3)。
# mkfs.xfs -f /dev/sdb1---指定sdb1分區的文件系統類型爲xfs
# mkfs.xfs -f -b size=1024 /dev/sdb1---須要指定文件系統的最小單位block的大小
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(3.3)接着咱們格式化完外分區後,在系統中建立一個aa的目錄,並把分區sdb1分區掛載到aa目錄下,此時咱們發現分區掛載到目錄下面是成功的。
# mkdir /aa---建立一個aa的目錄
# mount /dev/sdb1 /aa---把分區sdb1分區掛載到aa目錄下
# df -hT---查看系統的分區掛載狀況
【講清楚,說明白!】磁盤管理
(3.4)若是咱們想要在系統啓動後仍然可以掛載光盤,此時咱們應該在/etc/fstab文件中進行編輯,咱們若是須要防止磁盤的篡位的狀況發生,咱們應該使用設備的UUID來進行編輯(圖3-5和圖3-6)。此時咱們發現使用「# mount -a」命令後,咱們發現此時系統已經將/dev/sdb1分區掛載到/aa目錄中了(圖3-7)。
# blkid---查看全部分區的UUID信息
# xfs_info /dev/sdb1---從新獲取格式化後的分區信息
# xfs_admin -u /dev/sdb1---單獨查看/dev/sdb1分區的UUID信息
# mount -a---其中-a表示的是auto,即將全部的信息所有從新掛載一次
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(3.5)對於分區的UUID信息,咱們也是能夠從新生成並綁定的,此時咱們先經過uuidgen命令生成一個新的UUID信息,而後將生成的UUID信息和/dev/sdb1分區從新進行綁定,並須要在/etc/fstab文件中修改UUID信息(圖3-9),此時咱們才能夠實現開機自動掛載分區的目標(圖3-10)。
# uuidgen---從新生成一個新的UUID
# xfs_admin -U 092706ec-d3d3-4ce4-baaa-f77e9fc0a221 /dev/sdb1---咱們將生成的UUID信息和/dev/sdb1分區從新進行綁定
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理ide


(四)管理swap
(4.1)swap分區在系統的物理內存不夠用的時候,把物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什麼操做的程序,這些被釋放的空間被臨時保存到swap分區中,等到那些程序要運行時,再從swap分區中恢復保存的數據到內存中。
(4.2)在咱們的系統中交換分區的做用很重要,即便咱們系統的內存足夠大,可是也是仍然須要到使用交換分區。而咱們的swap分區主要是在/proc/sys/vm目錄下,其中swappiness的值爲30表示的是當咱們的物理內存的使用率達到(100%-swappiness%)即70%的時候,此時咱們的系統將開始使用交換分區,因此當咱們須要對服務器進行優化的時候,咱們就能夠經過修改swappiness的值,例如修改成0,這樣就能夠實如今系統的內存消耗完畢後纔開始使用交換分區。
【講清楚,說明白!】磁盤管理
(4.3)另外,也並不是是系統就能把「物理內存+swap」所有使用完畢,真正能分配出去的內存是由「CommitLimit=物理內存*overcommit_ratio+swap」決定。例如如今咱們系統中實際的內存空間是100G,咱們交換分區的大小設置的是2G,而系統中overcommit_ratio參數的值爲50%,所以系統可用的內存空間的大小爲100*0.5+2即爲52G,若是咱們如今運行一個redis的進程須要消耗60G的內存,此時咱們會想固然地認爲系統的內存是100G足夠去運行這個redis程序,可是實際運行後咱們發現後臺的日誌老是會有OOM killed的報錯提示,這就是因爲系統的overcommit_ratio參數設置不合理而致使咱們系統中實際的可用內存只有52G,因此纔會出現緩衝區溢出的問題。
(4.4)經驗總結:通常咱們的系統中交換分區的設置方式遵循以下的規則:
物理內存<=2G---swap爲1.5~2倍
物理內存爲4G---swap爲4G
物理內存爲4~16G---swap>=8G
物理內存爲16~32G---swap爲16G
物理內存>=32G---swap爲32G
(4.5)咱們若是須要查詢當前的系統有多少的交換分區,則咱們能夠按照以下的兩種方式查看
# swapon -s---查看當前系統的交換分區的信息(方法一)
# cat /proc/swaps---查看當前系統的交換分區的信息(方法二)
【講清楚,說明白!】磁盤管理
(4.6)若是咱們的交換分區不夠用了,咱們是能夠添加交換分區的,因爲咱們在建立分區的時候將/dev/sdb2分區設置爲swap類型(圖4-4),因此咱們還須要在系統中將此/dev/sdb2分區格式化爲swap類型(圖4-5),而系統在使用交換分區的時候是根據權限的大小來判斷交換分區的使用優先級的,數值越大優先級越高,例如-1是大於-2的,因此sda2是優先於sda1使用的。
# fdisk -l /dev/sdb---查看系統中/dev/sdb分區設置的類型
# mkswap /dev/sdb2---將/dev/sdb2分區格式化爲swap類型
# swapon /dev/sdb2---將/dev/sdb2分區激活
# swapon -s---查看當前系統swap分區的使用狀況
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(4.7)例如咱們如今想要修改提升/dev/sdb2的優先級,咱們能夠經過以下的方式操做
# swapoff /dev/sdb2---首先將/dev/sdb2的swap分區關閉掉
# swapon -p 3 /dev/sdb2---而後修改提升/dev/sdb2的優先級並開啓生效
【講清楚,說明白!】磁盤管理
(4.8)若是咱們但願系統在重啓後仍然可以掛載swap分區,咱們能夠在/etc/fstab文件中進行設置掛載swap分區,而且設置優先級爲3(圖4-7),而後咱們須要記住使用「# swapon -a」命令將全部的swap交換分區生效(圖4-8)。
【講清楚,說明白!】磁盤管理
【講清楚,說明白!】磁盤管理
(4.9)以上咱們使用的是建立一個分區的方式來添加交換分區的,但實際上有時候咱們系統中沒有多餘的分區的時候,其實咱們仍是能夠經過文件的方式來添加交換分區的,咱們可使用dd命令建立一個500M的文件,而後將此文件建立爲swap交換分區的格式,並進行掛載使用。
# dd if=/dev/zero of=/swapfile bs=1M count=500---建立一個500M的文件
# chmod 400 /swapfile---設置咱們建立的文件的權限爲400
# mkswap /swapfile---將/swapfile分區格式化爲swap類型
# swapon /swapfile---將/swapfile分區激活
# swapon -s---查看當前系統swap的掛載狀況
【講清楚,說明白!】磁盤管理工具

—————— 本文至此結束,感謝閱讀 ——————oop

相關文章
相關標籤/搜索