1. 程式人生 > >#11 硬連接與軟鏈接與RAID與LVM2

#11 硬連接與軟鏈接與RAID與LVM2

硬連接與軟鏈接與raid與lvm2

兩種特殊文件:

設備文件:

mknod


符號鏈接文件:


鏈接:就是訪問一個文件的不同路徑;

硬連接:

數據塊指針指向同一個數據塊的文件;

不能跨文件系統創建硬連接;

目錄文件不能創建硬連接;

每次創建硬連接都會增加indoe的引用計數

符號鏈接(軟鏈接):

用於儲存被鏈接文件的路徑的文件;

可以跨文件系統創建;

也可以對目錄創建;

每次都必粗進行兩組路徑的查找;


ln命令:

ln [option...] src_flie link_file

ln - make links between files

-S, --suffix=SUFFIX:創建符號鏈接,省略該選項,即創建硬連接;

-v, --verbose:顯示鏈接創建的過程;


註意:創建符號鏈接時,如果想要保證該鏈接文件被復制或移動到其他路徑中依然可用,最好鏈接至被鏈接文件的絕對路徑;


版本管理:

apache:

2.2 2.4


將不同版本的軟件分別放置於不同的目錄中,使用符號鏈接,將軟件鏈接到一個統一的路徑:


/usr/local/apache --> /usr/local/apache-2.#

/usr/local/apache-2.2

/usr/local/apache-2.4


RAID:

IDE:

SCSI:


redundant array of inexpensive disks,廉價磁盤冗余陣列

redundant array of independent disks,獨立磁盤冗余陣列


RAID:

提高IO能力:

使多個磁盤實現並行讀寫;

磁盤條帶化,chunk

提高耐用性:

磁盤冗余實現

即使磁盤發生故障或損壞,也不會影響數據;


RAID的實現方式:

硬件實現:

通過硬件RAID控制器或適配器。將所需的磁盤組織成RAID,而後安裝OS;

BIOS程序

軟件模擬實現:

操作系統通過系統調用的方式模擬RAID實現;


RAID的操作級別:

RAID0:

提高IO性能,條帶卷,strip

至少2塊磁盤

沒有冗余容錯能力

沒有存儲空間浪費,要求每個磁盤必須提供相同大小的儲存空間;


RAID1:鏡像卷,mirror

提供高可用性

需要2塊磁盤

先將數據存入主盤,然後再將數據存入從盤;

寫入效率較低,略微提示讀效率

磁盤空間的整體利用率為50%

有冗余容錯的能力


RAID2:

...

RAID4:

至少需要3塊磁盤

用多塊磁盤進行異或運算,得到校驗值,並且使用專門的一塊磁盤存放校驗值;

即使一塊磁盤損壞,也不會丟失數據;

校驗盤IO壓力巨大,很容易形成性能瓶頸;


RAID5:

用多塊磁盤進行循環冗余校驗,將校驗值隨機分配到不同磁盤的條帶中;

讀、寫IO性能均明顯提示,又不會出現性能瓶頸

磁盤利用率=(n-1)/n*100%

冗余容錯,

至少需要3塊磁盤


RAID6:

用多塊磁盤進行兩輪循環冗余校驗,將校驗值隨機分配到兩個不同磁盤的條帶中;

讀、寫IO性能均明顯提示,又不會出現性能瓶頸

最多允許兩塊磁盤出現故障或損壞依然保證數據可用;

代價就是增加了計算校驗值的時間;


RAID混合級別:

RAID01:

先做RAID0,在做RAID1


RAID10:

先做RAID1,在做RAID0


RAID7:

可以理解為一個存儲計算機,自帶操作系統以及相應的管理工具,可以獨立運行;


RAID50:

先做RAID5,在做RAID0


JBOD:

just a bunch of disks,僅僅就是一組磁盤;

將多塊磁盤的儲存空間連接到一起,順序存放數據;


在centos上實現軟RAID:

內核提供一個md的模塊(multi disks,multi devices)

用戶空間需要mdadm的工具,來設置和修改md內核模塊的參數;


mdadm:模式化工具

mdadm [mode] <raiddevice> [option...] <component device>

模式包括:

創建模式:-C

-n #:使用#塊磁盤創建RAID設備

-l #:指示RAID的級別

-a {yes|no}:允許系統或不許系統自動創建md設備文件;

-c CHUNK_SIEZ:指定chunk大小,

-x #:指定在陣列中空閑磁盤的數量

裝配模式: -A

根據/etc/madam.conf指示的raid進行裝配

管理模式:-a,-r,-f

雜項:

-D --scan

顯示raid設備的詳細信息

mdadm -D --scan > /etc/madam.conf

該配置文件用於raid設備的再次裝配

-S:停止raid的設備

dd - convert and copy a file

LVM2

logical volume manager,邏輯卷管理器,version(版本)2

IBM


使用純軟件的方式組織一個或多個底層的塊設備,將它們重新定義為一個邏輯塊設備的解決方案;


利用內核中的dm模塊實現;

dm:device mapper,設備映射表

dm模塊可以將一個或多個底層塊設備組織成一個邏輯塊設備;

用戶空間中的相應命令來向dm模塊發出系統調用,就可以完成後邏輯塊設備的管理;


邏輯塊設備統一存放在/dev/dm-#


使用DM機制實現LVM管理的步驟:

1.創建並標識物理卷,PV

註意:如果用來創建物理卷的設備是普通分區,一定要將分區的ID修改為8e;

2.基於PV創建卷組,邏輯塊設備,創建卷組的同時指定PE的大小;

註意:一旦PE大小被指定,就不允許更改;

3.在已經創建的卷組中創建邏輯卷

4.在邏輯卷中創建文件系統(高級格式化)

5.掛載


物理卷的管理操作:

pvcreate:創建物理卷

pvdisplay:顯示物理卷的詳細信息

pvs:顯示物理卷的簡單信息

pvremove:刪物理卷

pvmove:將某個物理卷中的所有的PE移動到其他物理卷中;


卷組的管理操作:

vgcreate:創建卷組

-s #{kKmMgG}:指定PE的大小,如果省略該選擇,默認的PE為4M

vgremove:刪除卷組

vgextend:擴展卷組容量,將新的pv添加到卷組中

vgreduce:縮減卷組容量,將pv從卷組中移除;在做此操作之前,應該先使用pvmove,保證被移除的pv上沒有被占用的pe

vgdisplay:顯示卷組的詳細信息

vgs:顯示卷組的簡短信息


邏輯卷的管理操作:

lvcreate:創建邏輯卷

-L LV_SIZE(#{kK|mM|gG}):指定邏輯卷的大小,不能超過卷組的容量;

-l #${FREE|VG|ORIGIN|PVS}:指定邏輯卷占用對應存儲單元的百分比;

-n LV_NAME:指定邏輯卷的名稱

-i #:在創建邏輯卷的時候,以條帶的方式創建,並指明這個邏輯卷上有#個條帶

-I #:在創建邏輯卷的時候,以條帶的方式創建,並指明CHUNK的大小;

lvremove:移除邏輯卷

lvdisplay:顯示邏輯卷的詳細信息

lvs:顯示邏輯卷的簡短信息

lvchange:修改LV的狀態

-ay:激活邏輯卷

-an:停用邏輯卷

lvextend:擴展邏輯卷的空間,

註意:一定要先擴展邏輯卷的物理邊界,再擴展邏輯卷的邏輯邊界;

使用ext系列文件系統的時候,resize2fs命令擴展邏輯邊界;

lvreduce:縮減邏輯卷的空間

註意:先縮減邏輯卷的邏輯邊界,再縮減邏輯卷的物理邊界,

使用ext系列文件系統的時候,resize2fs命令縮減邏輯邊界;


為了更方便的使用邏輯卷,為/dev/dm-#設備創建了兩個符號鏈接文件;

/dev/mapper/VG_NAME-LV_NAME --> ../dm-#

/dev/VG_NAME/LV_NAME --> ../dm-#


邏輯卷的快照:

快照,本身也是一種邏輯卷;目標邏輯卷的另外一個訪問路徑;


lvcreate -s -p r -L 15G -n mylv-snopshot /path/to/dest_lv


#11 硬連接與軟鏈接與RAID與LVM2