這幾天看了一下linux下的裸設備管理,做了一些學習筆記,不敢獨享,共享如下:
(筆記的內容不一定正確,有錯誤請指出)
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上,使每次啟動都執行這些命令。