linux添加裸裝置

來源:互聯網
上載者:User

標籤:style   color   使用   檔案   資料   os   

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

裸裝置:也叫裸分區(原始分區),是一種沒有經過格式化,不被Unix/Linux通過檔案系統來讀取的特殊字元裝置。裸裝置,也叫裸分區(原始分區),是一種沒有經過格式化,不被Unix通過檔案系統來讀取的特殊字元裝置。它由應用程式負責對它進行讀寫操作。不經過檔案系統的緩衝。裸裝置可以綁定一個分區,也可以綁定一個磁碟。
字元裝置:對字元裝置的讀寫不需要通過OS的buffer。它不可被檔案系統mount。
塊裝置:對塊裝置的讀寫需要通過OS的buffer,它可以被mount到檔案系統中。

 

在oracle中使用裸裝置的好處是什嗎?
因為使用裸裝置避免了在經過unix作業系統這一層,資料直接從disk到oracle之間進行無縫傳輸,所以使用裸裝置對於讀寫頻繁的資料庫應用來說,可以極大的提高資料庫系統的效能,當然,這是以磁碟的I/O非常大,磁碟I/O已經成為系統瓶頸的情況下才能力的,如果磁碟讀寫確實非常頻繁,以至於磁碟讀寫成為系統瓶頸的情況成立,那麼採用裸裝置確實可以大大提高效能,最大甚至可以提高至40%,非常明顯。而且,由於使用了原始分區,沒有採用檔案系統的管理方式,對unix維護檔案系統的開銷也都沒有了。比如不在需要維護i-node,空閑塊等等,這也能夠導致效能的提高。



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上,使每次啟動都執行這些命令。

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、如何知道當前綁定了什麼裸裝置?
rqw -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) 就是裸裝置的大小。

11、資料庫中可以同時以檔案和裸裝置作為資料檔案嗎?
可以。甚至在同一個資料表空間中,也可以部分資料檔案用檔案系統,部分檔案用裸裝置。
但是不建議這樣做,因為會增加管理的複雜度。

12、可以把至於裸裝置的資料檔案設成自動擴充嗎?
可以,但同時要設定maxsize,且maxsize不能超過:裸裝置大小 - 2*db_block_size

13、如何修改裸裝置的預設許可權
兩種方法:
1)要修改/etc/rc.d/rc.local檔案,加入如下:
chown root:oinstall /dev/raw/raw1
chown root:oinstall /dev/raw/raw2
chown root:oinstall /dev/raw/raw3
...
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
...

2)實際上還有更簡單的方法就是,修改/etc/udev/permissions.d/50-udev.permissions檔案:
raw/*:root:disk:0660

raw/*:root:oinstall:0660

這樣就可以了!


14、如何取消裸裝置的綁定
用raw把major and minor設成0就可以取消裸裝置的綁定。如:
raw /dev/raw/raw1 0 0
這個命令取消綁定裸裝置的綁定,/dev/raw/raw1會被刪除

15、裸裝置可以綁定的對象可以什嗎?
可以綁定整個沒有分區的硬碟、可以綁定硬碟的某個分區、可以綁定邏輯卷等。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.