linux--磁盤管理

磁盤管理項目需求:

1、在企業服務器上安裝新硬盤,對磁盤進行分區、格式化、掛載處理

2、根據企業服務器數據業務的不同,採用不同的raid技術來保證數據的讀寫速度、數據安全

3、在企業的存儲服務器上採用LVM邏輯卷技術來實現容量的動態調整

4、在服務器的運維工作中隨機對系統進程進行分析和管理

項目測試:

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

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

根據上述所需應掌握以下技術:

磁盤管理之硬盤分區方式:

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

GUID:全局唯一標識符(GUID,Globally Unique Identifier)是一種由算法生成的二進制長度爲128位的數字標識符。GUID主要用於在擁有多個節點、多臺計算機的網絡或系統中。GUID標識符由隨機產生的字母、數字混合組成
parted -s /dev/sdb mklabel gpt 定義分區表標籤
parted -s /dev/sdb mkpart primary 1M 1.5G 創建第一個分區爲1.5G
parted -s /dev/sdb mkpart primary '1.5G -1' 創建第二個分區爲剩下的所有分區
mkfs.ext4 /dev/sdb1 格式化一號分區
mkfs.xfs /dev/sdb2 格式化二號分區
mkdir -pv /mnt/sdb{1,2} 創建掛載目錄
mount /dev/sdb1 /mnt/sdb1 分區一掛載到/mnt/sdb1目錄中
mount /dev/sdb2 /mnt/sdb2 分區二掛載到/mnt/sdb2目錄中
touch /mnt/sdb1/{a.txt,b.mp3} 寫入數據

卸載分區的文件系統:umount /mnt/sdb1 /mnt/sdb2
刪除分區表(修改分區表格式標籤即可):parted -s /dev/sdb mklabel msdos


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

MBR的分區表特點:
0.只能管理總容量在2TB以內的硬盤。
1.最多隻允許分4個主分區,因爲DPT分區表總容量是64字節,每個分區佔用16字節,即64/16=4。
2.如果想分的個以上的分區,可採用分一個主分區(primary)和一個擴展分區(extend),然後在擴展分區中創建邏輯(logical)分區來實現。
3.主分區的編號爲1~4,第1個邏輯分區的編號默認爲5。
4.只能在主分區和邏輯分區上格式化創建文件系統。並且只能在主分區和邏輯分區上寫入文件。
創建分區: cfdisk /dev/sdb
格式化分區:mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb5
mkfs.xfs /dev/sdb6
創建掛載點目錄:mkdir -pv /mnt/{data,mysql,web}
手動掛載:mount /dev/sdb1 /mnt/data
mount /dev/sdb5 /mnt/mysql
mount /dev/sdb6 /mnt/web
寫入數據:touch /mnt/data/{a1.txt,b1.mp3}
mkdir -pv /mnt/mysql/{haha,hehe}
cp -v /etc/host* /mnt/web/
遞歸顯示文件名列表:ls -R /mnt/{data,mysql,web}


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

fdisk /dev/sdb 對/dev/sdb 進行分區
fdisk的常用快捷鍵:
m:顯示命令幫助
p 顯示分區表信息(print)
n 新建一個分區(new)
d 刪除一個分區(delete)
w 保存並退出(write)
q 不保存退出(quit)
l 顯示(list)分區的文件系統類型標籤代號
t 修改分區的文件系統類型(type)標籤
a 激活(active),即給分區添加bootable允許引導的標記(通常用於boot引導程序的分區)

分區後格式化,再掛載

   RAID

raid: 是冗餘磁盤陣列的縮寫,簡稱磁盤陣列。
Raid功能:提供了容量組合、高讀寫性能、同步備份等功能。

RAID 0 : 條帶化 硬盤數量 >=2 允許壞盤數0塊 高讀寫性能 容量組合
RAID 1 : 鏡像化 硬盤數量 =2 1塊冗餘(可壞) 同步備份,安全性高
RAID 5 : 分佈式奇偶效驗的條帶化 硬盤數量>=3 1塊冗餘 高>讀寫性能 數據安全
RAID 6 : 雙組分佈式奇偶效驗的條帶化 硬盤數量>=4 2塊冗餘 高讀寫性能 數據安全
RAID10: 鏡像化+條帶化 硬盤數量>2的偶數 可壞一半 容量組合+同步備份

Linux系統中軟raid管理工具軟件:mdadm
mdadm命令選項:
-C 即create,創建raid設備
-l 即level,指定raid等級號,等級可以是0、1、5、6、10等
-n 即number,指定raid中的磁盤設備數量
-x 即spare空格,指定raid設備中的熱備(備胎、替補)磁盤數量
-D 即detail詳細,顯示raid設備的詳細信息
-s 即scan掃描,掃描出系統中所有的raid設備
-v 即verbose,顯示執行過程
-S 即stop,停用指定的raid設備
-A 即active,激活(啓用)指定的raid設備
-a 即add,在指定的raid設備組中添加新的成員
-f 即faulty錯誤的,指定raid設備組中有故障的磁盤
-r 即remove移除,在指定的raid設備組中刪除有故障的磁盤

顯示磁盤設備列表:lsblk
顯示raid設備列表:mdadm -Dsv
創建名稱爲md5的raid 5設備:mdadm -C md5 -l 5 -n 3 -x 1 /dev/sd{b..e}
顯示名稱爲md5的raid 5設備的詳細信息:mdadm -D /dev/md/md5
顯示raid設備列表:mdadm -Dsv
生成raid配置文件:mdadm -Dsv > /etc/mdadm.conf

附加操作:
顯示磁盤設備列表:lsblk
停用md5這個raid設備:mdadm -S /dev/md/md5
啓用md5這個raid設備:mdadm -A /dev/md/md5
警告:要想在停用raid設備之後再啓用,必須保證mdadm.conf配置文件存在。


   LVM邏輯卷管理

LVM概念:
LVM的主要功能:容量組合,動態調整容量大小。
LVM是將多塊硬盤從邏輯上組合成一個大容量的存儲空間(即VG卷組),最終要劃分成小的LV邏輯捲來使用這些空間。
LVM的管理流程:先給硬盤分區(也可以不分區),再創建PV物理卷(volnume),再創建VG卷組,再創建LV邏輯卷,再mkfs格式化LV,再mount手動或fstab自動掛載LV,再寫入數據。

創建lvm
pvcreate /dev/sdb /dev/sdc ---------- 創建pv物理卷
vgcreate myvg /dev/sdb /dev/sdc ------ 創建myvg的卷組 ,並把/dev/sdb /dev/sdc拉入myvg卷組
lvcreate -L 3G -n mylv myvg ------- 創建容量爲3G,名爲mylv的lv邏輯卷
(查看pv狀態,vg狀態,lv狀態: pvs vgs lvs)
掃描並顯示系統中的所有LV設備: lvscan
mkfs.ext4 /dev/myvg/mylv ----------- 格式化
mkdir /mnt/data ---------------- 創建掛載目錄
mount /dev/myvg/mylv ---------------- 手動掛載


lvm擴容

將/dev/sdd /dev/sde加入myvg卷組中,並將mylv容量調整成7G
pvcreate /dev/sdd /dev/sde ----------- 創建pv物理卷
vgextend myvg /dev/sdd /dev/sdc ---- 在myvg這個卷組中添加 /dev/sdd /dev/sde
lvextend -L 7G /dev/myvg/mylv ------- 把mylv容量調整爲7G

df -h 查看磁盤容量信息
resize2fs /dev/myvg/mylv 同步文件中的系統容量信息


lvm縮容

df -h ----------------- 顯示磁盤空間使用狀態
umount /mnt/data ---------- 卸載掛載點所對應的設備
e2fsck -f /dev/myvg/mylv ------- 掃描檢查磁盤設備
resize2fs /dev/myvg/mylv 1G -- 調整文件系統的容量爲1G
lvresize -L 1G /dev/myvg/mylv lv容量縮減

VG卷組的縮容
vgs pvs ------------------- 分別查看vg和pv的狀態
pvmove /dev/sdb /dev/sdd ----- 遷移sdb磁盤的數據到sdd硬盤中去
vgreduce myvg /dev/sd{b,c,e} -- 在myvg卷組中移除sdb sdc sde三個成員


lvm快照恢復:

LVM快照的工作原理:LVM的快照卷也是一個LV邏輯卷,快照卷跟源邏輯卷共享數據,當用戶修改源邏輯卷中的文件時,LVM後臺程序會自動將修改之前的文件複製一份到快照卷中

創建mylv-snap快照卷 : lvcreate -L 500M -s -n myvg-snap /dev/myvg/mylv
創建掛載點目錄:mkdir -pv /mnt/mylv-snap
手動掛載:mount /dev/myvg/mylv-snap /mnt/mylv-snap

恢復快照:
思路:先卸載源邏輯卷--〉恢復快照--〉掛載邏輯卷
卸載:umount /dev/myvg/mylv /dev/myvg/mylv-snap
恢復快照:lvconvert --merge /dev/myvg/mylv-snap
掛載:mount /dev/myvg/mylv /mnt/mydata
顯示掛載點目錄中的文件內容:cat /mnt/mydata/hosts


quota磁盤限額

       quota的磁盤配額可以限制用戶的硬盤可用空間或最大創建文件數量,並且還有軟/硬限制的區別:
       soft軟限制  -----------  當達到軟限制時會提示用戶,但允許用戶在規定期限內繼續使用。
       hard硬限制  ----------  當達到硬限制時會提示用戶,且強制終止用戶的操作。
       block塊  -------------   限制用戶能使用的容量。
       inode索引號  ---------  限制用戶能創建的文件數量。

lsblk ---------------------------------- 顯示塊設備
parted -s /dev/sdf mklabel msdos ------------- 設置分區表格式標籤爲msdos(即MBR分區表)
parted -s /dev/sdf mkpart primary '1 -1 ' ------ 創建主分區,使用所有容量
mkfs.ext4 /dev/sdf1 ----------------------------- 格式化sdf1分區爲ext4文件系統
mkdir -pv /f1 ----------------------------- 創建掛載點目錄
mount -o usrquota,grpquota /dev/sdf1 /f1 ------- 手動掛載sdf1設備,並使用磁盤配額功能
setenforce 0 -------------------------------------- 臨時關閉Selinux安全功能
getenforce ---------------------------------- 查selinux的工作狀態
quotacheck -cvug /f1 ---------------------------- 生成quota主配置文件
ls /f1 -------------------------------------------- 顯示/f1目錄的文件名列表
quotaon -v /f1 ------------------------- 激活quota功能,如果未激活,後期切換到用戶後,用quota查狀態會出沒有權限
useradd -Db /f1 ---------------------------------- 修改useradd創建用戶時的用戶家目錄的基目錄爲/f1
useradd fa -------------------------------------- 創建fa用戶
repquota -av -------------------------------------- 顯示quota配額狀態信息報表
edquota -u fa -------------------------------------- 給fa用戶設置文件數量配額,軟限制爲15個文件,硬限制爲18個文件。

su - fa ------------------------------------- 切換到fa用戶
quota ---------------------------------------------- 顯示當前用戶的quota配額使用狀態信息
touch {1..5} --------------------------------------- 會提示quota exceeded配額超出,即超出了軟限制。
touch {6..10} -------------------------------------- 會提示超出磁盤限額,無法創建。即超出了硬限制。
exit 退出當前用戶

edquota命令補充:
將fa用戶的配額方案複製給fb用戶:edquota -p fa zk


   swap交換分區:

虛擬內存:將硬盤的一部分空間當作內存來使用。用來緩解物理內存不足的問題

使用swap構建分區:
應用場景:
硬盤已經沒有剩餘空間來創建swap分區時,在硬盤上創建一個swap文件來充當swap分區。

使用swap分區

應用場景:
1.硬盤已經沒有剩餘空間來創建swap分區時,在硬盤上創建一個swap文件來充當swap分區。
dd if=/dev/zero of=/tmp/swap bs=1M count=128 (使用dd命令來創建一個128M的文件到/tmp目錄中)
mkswap /tmp/swap 使用mkswap將/tmp/swap文件格式化成swap
free 查看當前swap值
swapon /tmp/swap 啓用/tmp/swap
free 驗證swap是否多了128M

swapoff /tmp/swap 關閉/tmp/swap文件
2.如果硬盤有空閒空間來創建swap分區時,可以在硬盤上創建一個swap分區並啓用swap。
目標:在sdb硬盤上創建一個500M的swap分區,並啓用這個Swap分區。
perted -s /dev/sdb mklabel msdos 設置分區表類型爲msdos(即MBR)
parted -s /dev/sdb mkpart primary 1 500M 創建1個500M的主分區
mkswap /dev/sdb1 使用mkswap將/dev/sde1文件格式化爲swap格式
free 查看當前swap值
swapon /dev/sdb1 使用swapon來啓用/dev/sde1
free

swapoff /dev/sdb1 使用swapoff關閉/dev/sde1

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