1.磁盤陣列(raid)詳解:磁盤陣列,有獨立磁盤構成的具有備援能力的陣列。
raid0:(一種簡單的、無資料校驗的資料條帶化技術)它的性能是所有raid中是最好的。
特點:成本低,高讀寫性能;
100%的高存儲空間使用率;
不提供資料備援保護,資料一旦損壞,無法恢複;
适用場景:一般适用于對性能要求嚴格,但對資料安全性和可靠性不高的應用;如視訊、音頻存儲、臨時資料緩存空間。
raid1:(鏡像存儲)
特點:資料完全一緻的分别寫到工作磁盤和鏡像磁盤;
磁盤空間使用率為50%;
資料寫入時,響應時間會有所影響,但是讀資料時無影響;
提供資料保護,當工作磁盤發生故障,系統自動的從鏡像磁盤中讀取資料,不影響使用者工作;
raid5:(最少 3 塊盤)
特點:具有很好的擴充性,當磁盤數量增加時,并行操作的能力也随之增長;
可同時存儲資料和校驗資料,當一個資料盤損壞時,系統可以根據同一條帶的其他資料和對應的校驗資料來重建損壞的資料;
兼顧存儲性能,資料安全和存儲成本等因素;
raid6:(最少 4 快盤)
特點:不僅支援資料的恢複,還支援檢驗資料的恢複;
可以保護陣列中兩個磁盤失效而造成的資料丢失(校驗資料可以分别存儲在兩個不同的校驗盤上,或者分散在所有成員磁盤中;)
raid 0 1(先條帶,在鏡像;本質是對實體磁盤做鏡像)相容了raid0和raid1的優點;磁盤使用率僅50%;
raid1 0(先鏡像,再條帶;對虛拟磁盤實作鏡像)
2.建立軟raid :(用mdadm工具建立和維護軟raid)
–c :建立一個新的軟raid,後接raid裝置名的名稱 /dev/md0 /dev/md1
–A:加載一個已經存在的陣列,後接raid裝置名的名稱
–D:輸出指定裝置的詳細資訊
–s:停止指定的raid裝置
–l:設定raid的級别
–n:指定磁盤陣列中活動磁盤的數目
–spare-devices:指定陣列中的備用磁盤數目
建立分區(并在硬碟上建立幾個分區):fdisk /dev/sdb
建立raid5(其中/dev/sde1為備用裝置、其餘為活動裝置):mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
檢視raid詳細資訊:mdadm --detail /dev/md0
建立raid的配置檔案:mdadm --detail --scan > /etc/mdadm.conf
(目前的mdadm.conf檔案内容不符合規定格式,不生效,需要手工修改vi /etc/mdadm.conf DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 )
建立檔案系統:mkfs.ext4 /dev/md0
3.維護軟raid
标記/dev/sdc1為故障磁盤:mdadm /dev/md0 --fail /dev/sdc1
檢視陣列狀态:cat /proc/mdstat (/proc/mdstat檔案可檢視目前陣列狀态)
移除故障磁盤:mdadm /dev/md0 ==remove /dev/sdc1
添加新硬碟:mdadm /dev/md0 --add /dev/sdc1
4.LVM邏輯卷
(LVM是Linux中對磁盤分區進行管理的一種機制,是建立在硬碟和分區之上,檔案系統之下的一個邏輯層,可提高磁盤分區管理的靈活性;/boot分區不能基于LVM建立,必須獨立出來)
PE:實體卷中最小的基本單元,它的大小可配置,預設是4MB
PV(實體卷):實體的磁盤分區;
指硬碟分區或從邏輯上與磁盤分區具有同樣功能的裝置,是LVM的 基本存儲邏輯塊。
VG(卷組):LVM的實體磁盤分區;
類似于非LVM系統中的實體硬碟,由實體卷組成;可以在卷組上建立一個或多個LVM分區,LVM由一個或多個實體卷組成。
LV(邏輯卷):從VG中劃分的邏輯分區;
類似于非LVM系統中的硬碟分區,在邏輯卷上可以建立檔案系統。
LE:LE和PE的大小是相同的,并且一一對應。
4.1 pv相關指令
pvcreate:建立pv
pvsvs:檢視pv資訊 pvdisplay:檢視pv詳細資訊
pvscan:在系統中掃描硬碟,列出找到的實體卷清單
-e 僅顯示屬于卷組的實體卷
-n 僅顯示不屬于任何卷組的實體卷
-s 短格式輸出
-u 顯示UUID
pvremove:移除實體卷
pvmove:移除實體卷中的PE,即将硬碟上的資料轉移到其他硬碟上
4.2 vg相關指令
vgcreate:建立卷組 vgcreate 卷組名 /dev/sd{b,c,d}
-s 指定PE的大小 vgcreate -s 100M 卷組名 /dev/sd{b,c,d}
vgextend:向卷組中添加成員 vgextend 卷組名 /dev/sd{e,f}
cgreduce:從卷組中删除成員 vgreduce 卷組名 /dev/sd{e,f}
vgremove:删除卷組 vgremove 卷組名
vgs:檢視卷組資訊
vgdisplay:檢視卷組的詳細資訊
vgrename:更改卷組的名稱 vgrename 舊卷組名 新卷組名
vgchange:改變卷組的工作狀态 vgchange -a y | n 卷組名
4.3 LV的相關指令
lvcreate:建立邏輯卷
-n:指定邏輯卷的名稱
-L:指定邏輯卷的大小(使用空間容量進行指定) lvcreate -L 100M -n mylv myvg
-l:指定邏輯卷的大小(使用PE的個數進行指定) lvcreate -l 10 -n mylv myvg
-s:指明建立的邏輯卷為快照 lvcreate -s -n mylv -L 100M /dev/myvg/mylv -p r
-p:設定屬性(r 設定制度屬性)
lvextend:擴充邏輯卷的大小 lvextend -L +500M /dev/myvg/mylv
lvreduce:所見邏輯卷的大小 lvreduce -L 10G /dev/myvg/mylv
lvrename:更改邏輯卷的名稱 lvrename 舊名稱 新名稱
lvs:檢視lv的資訊
lvdisplay:檢視lv的詳細資訊
lvremove:删除邏輯卷
lvconvert:恢複快照,快照在恢複後被删除 lvconert --merge /dev/myvg/mylv
4.4 建立LVM
建立實體磁盤:/dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
建立pv:pvcreate /dev/sdb1 /dev/sdb2
建立vg:vgcreate myvg /dev/sdb1 /dev/sdb2
建立lv:lvcreat -L 100M -n mylv myvg (按空間容量)
lvcreat -l 100 -n mylv myvg (按PE個數)
建立檔案系統并挂載:mkfs.ext4 /dev/myvg/mylv
檢視:df -Th
4.5VG管理
擴充vg vgextend myvg /dev/sdb5
縮減vg dd if=/dev/zero of=/mnt/mylv/lvfile bs=1 count=20
pvs
pvmove /dev/sdb1 (将資料挪到其它的pv)
vgreduce myvg /dev/sdb1
vgs
4.6 LV 擴容 (必須有足夠的vg才可以擴容lv)
lvextend -L +500M /dev/nyvg/mylv (給lv擴容500M)
lvs
df -h |grep mylv (檢視目前lv大小)
resize2fs /dev/myvg/mylv (重新建立檔案系統)
df -h |grep mylv (檢視擴容後的檔案系統大小)
4.7 LV 縮減
umount /dev/myvg/mylv(必須先解除安裝邏輯卷)
df -h
e2fsck -f /dev/myvg/mylv (檢查邏輯空間;必須強制檢測,否則縮減的時候會提示)
第一步:檢查inode,塊,大小
第二步:檢查目錄結構
第三步:檢查目錄連接配接性
第四步:檢查參數
第五步:檢查簇概要資訊
resize2fs /dev/myvg/mylv (重置檔案系統大小)
resize2fs /dev/myvg/mylv 500M (縮減檔案系統到500M)
lvreduce -L -500M /dev/myvg/mglv (縮減邏輯卷500M)
mount /dev/myvg/mylv /mnt/mylv
df -h |grep mylv (檢視縮減後的邏輯卷大小)
4.8 删除邏輯卷
先解除安裝邏輯卷umount
修改/etc/fstab 裡面邏輯卷的挂載資訊
lvrrmove 删除邏輯卷
vgremove 删除卷組
pvremove 将實體卷轉化為普通分區
5. LVM快照
VG中需要預留存放快照本身的空間,不能全部被占滿
快照所在的vg必須與備份的lv相同
如果快照卷滿了,則會自動失效,因為快照區記錄的是資料變化前的資料,也就是說資料的修改量不能超過快照區的大小,否則這個快照就不能用了。
建立快照:lvcreate -L 20M -s -n /dev/myvg/mylv
lvdisplay
删除快照:lvremove /dev/myvg/mysnop
通過快照恢複資料
給建立好的lv中寫入資料
echo “hello” > mysnop_file
cat mysnop_file
建立快照
lvcreate -L 20M -s -n mysnop /dev/myvg/mylv
lvdisplay | grep %
dd if =/dev/zero of = /mnt/mylv/lvfile bs=1M count=5
lvdisplay | grep %
echo “hello” > mysnop_file2
ls
恢複原始資料
lvconvert --merge /dev/myvg/mysnop
mount /dev/myvg/mylv /mnt/mylv/
cd /mylv/
ls -lh (資料已恢複到原始狀态)
6.檔案系統
inode table:存儲檔案的中繼資料(檔案權限、時間戳、指向block的指針等資訊)
date block:存儲檔案的實際資料
Linux正統的檔案系統的(如ext2\ext3\ext4)一個檔案由目錄項、inode和資料塊組成。
目錄項:包括檔案名和inode節點号
inode:又稱檔案索引節點,是檔案基本資訊的存放地和資料塊指針存放地。
資料塊:檔案具體内容存放地。
xfs檔案系統:
特點:資料完全性、傳輸特性、可擴充性、傳輸帶寬
修複檔案系統:fsck e2fsck