Linux裸裝置管理學習

edwardking888發表於2011-11-08

1、什麼是Linux裸裝置?字元裝置?塊裝置?

裸裝置:也叫裸分割槽(原始分割槽),是一種沒有經過格式化,不被Unix/Linux通過檔案系統來讀取的特殊字元裝置。裸裝置可以繫結一個分割槽,也可以繫結一個磁碟。

字元裝置:對字元裝置的讀寫不需要通過OS的buffer。它不可被檔案系統mount。

塊裝置:對塊裝置的讀寫需要通過OS的buffer,它可以被mount到檔案系統中。

2、一個系統可以有多少個裸裝置?

這個與linux的版本相關,在舊版本中,最多隻可以有256個裸裝置,Linux 4下做多可以繫結8192個裸裝置。

但是在linux下,最多隻能有255個分割槽,所以,如果用裸裝置繫結分割槽,最多隻能繫結255個裸裝置。

如果是用lvm,則沒有這個限制。

3、Linux下單個磁碟最多可以有多少個分割槽?

15個。3個主分割槽 + 1個擴充套件分割槽 + 11個邏輯分割槽。

建議的分割槽方法是:先分3個主分割槽,第四個分割槽為擴充套件分割槽,然後在擴充套件分割槽中再分成11個邏輯分割槽。

注意,裸裝置不要繫結在擴充套件分割槽上。

4、linux下是否需要繫結裸裝置?unix呢?

linux下如果需要使用裸裝置,則需要手工進行繫結。

unix下則不用。

因為Unix中每一個塊裝置都會有一個對應的字元裝置用於非快取(unbuffered)I/O,這就是他對應的裸裝置了。

而Linux中rawio的則實現了一套非繫結(unbound)的裸裝置/dev/rawN或者/dev/raw/rawN和一個控制裝置/dev/rawct用來把他們繫結到塊裝置上。所以當需要使用一個裸裝置的時候,就需要把他和一個真實存在的塊裝置對應起來,這一個步驟實際上就是完成了Unix裡的自動對應一個非快取字元裝置。

5、linux如何繫結裸裝置?

兩種方式:

1)命令繫結

raw /dev/raw/raw[n] /dev/xxx

其中n的範圍是0-8191。raw目錄不存在可以建立。

執行這個命令,就會在/dev/raw下生成一個對應的raw[n]檔案

用命令方式繫結裸裝置在系統重啟後會失效。

2)修改檔案

修改/etc/sysconfig/rawdevices檔案如下,以開機時自動載入裸裝置,如:

/dev/raw/raw1 /dev/sdb1

這種方式是通過啟動服務的方式來繫結裸裝置。

也可以把這個命令寫在/etc/rc.local上,使每次啟動都執行這些命令。



Redhat 5 以上版本已經取消了對裸裝置的支援,所以在安裝 Oracle RAC 時所使用的的裸裝置,需要通過 Udev 進行設定:


設定重新啟動自動掛載裸裝置
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw3 %N"

注意確定raw命令在/bin目錄下,有的linux是在/usr/bin目錄下

vi /etc/udev/rules.d/65-raw-permissions.rules
# Set permissions of raw bindings to Oracle Clusterware devices
KERNEL=="raw1", WNER="root", GROUP="oinstall", MODE="660"
KERNEL=="raw2", WNER="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw3", WNER="oracle", GROUP="oinstall", MODE="660"

以上方法也適用其他使用udev掛載裝置的linux版本.

具體請參考 Oracle 官方文件:

Note 465001.1
- Configuring raw devices (singlepath) for Oracle Clusterware10gRelease 2 (10.2.0) on RHEL5/ OEL5






missing folder /etc/udev/permissions.d 
Posted: 2008-1-13 下午5:23    in response to: user611755
Reply
Hi,

What kind of OS are you running ? Please upload the output of "uname -a".
If you are using EL5/RHEL5, that's right. You can't find the folder /etc/udev/permissions.d. Please follow the following steps:

1. Add udev permission rules to /etc/udev/rules.d/65-raw-permissions.rules file
2. Add the udev permission rules to the /etc/udev/rules.d/65-raw-permissions.rules file, for example:
# Set permissions of raw bindings to Oracle Clusterware devices
KERNEL=="raw1", WNER="root", GROUP="oinstall", MODE="640"
KERNEL=="raw2", WNER="oracle", GROUP="oinstall", MODE="640"

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-710442/,如需轉載,請註明出處,否則將追究法律責任。

相關文章