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,這就是他對應的裸設備了。
本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45425.htm
而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上,使每次啟動都執行這些命令。
6、如何把裸設備作為oracle數據文件?有什麼需要注意的?
1)綁定裸設備
參考上文
2)改變裸設備屬主
兩種方法:
. 把命令卸載/etc/rc.local上
chown oracle:oinstall /dev/raw/raw1
. 修改/etc/udev/permissions.d/50-udev.permissions文件
將/etc/udev/permissions.d/50-udev.permissions的113行
從
raw/*:root:disk:0660
修改為
raw/*:oracle:oinstall:0660
這個的意思是修改裸設備的默認屬主為oracle:oinstall,默認的mode是0660。
如果是用lvm,也需要把邏輯卷綁定到裸設備上,過程和綁定到普通分區類似。
7、使用裸設備作為oracle數據文件有什麼需要注意的?
使用裸設備作為oracle的數據文件必須注意以下幾點:
1)一個裸設備只能放置一個數據文件
2)數據文件的大小不能超過裸設備的大小
如果是日志文件,則裸設備最大可用大小=裸設備對應分區大小 - 1 * 512 (保留一個redo lock)
如果是數據文件,則裸設備最大可用大小=裸設備對應分區大小 - 2 * db_block_size(保留兩個block)
為了簡單起見,對所有的文件設置稱比裸設備小1M即可。
3)數據文件最好不要設置稱自動擴展,如果設置稱自動擴展,一定要把maxsize設置設置為比裸設備小
8、是否可以直接用邏輯卷作為oracle數據文件?
linux下oracle不能直接把邏輯卷作為裸設備,也要進行綁定。unix下就不需要。
9、如何知道當前綁定了什麼裸設備?
raw -qa命令列出當前綁定的所有裸設備。
10、如何知道某個裸設備的大小
比較笨的辦法是,找出看裸設備對應的是那個實際的塊設備,然後用fdisk -l /dev/[h,s]dXN看那個塊設備的大小就好了。
比較簡單的辦法是用blockdev命令來計算,如:
#blockdev --getsize /dev/raw/raw1
11718750
11718750表示有多少OS BLIOCK。
一般一個OS BLOCK大小是512字節,所以11718750*512/1024/1024/1024 = 5722(m) 就是裸設備的大小。