歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux裸設備管理簡介

Linux裸設備管理簡介

日期:2017/3/3 16:01:53   编辑:關於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,這就是他對應的裸設備了。

本文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) 就是裸設備的大小。

Copyright © Linux教程網 All Rights Reserved