AIX中的裸裝置
轉自網路
在AIX裡,每個LVM裝置支援兩種操作方式,分別被抽象為 Block Device (塊裝置)和 Character Device (字元裝置),
其中Character Device 又被稱為 Raw Device (原因往下看):
比如:
# ls -l /dev/*hdisk0
brw------- 1 root system 22, 2 May 15 2007 hdisk0
crw------- 2 root system 22, 2 May 15 2007 rhdisk0
# ls -l /dev/*hd3
brw-rw---- 1 root system 10, 7 May 15 2007 /dev/hd3
crw-rw---- 1 root system 10, 7 May 15 2007 /dev/rhd3
這裡檔案屬性開頭的'c'字母代表Character, 檔名開頭的'r'字母代表Raw。
字元裝置支援不定長的資料傳輸 (data transfers of arbitrary sizes),最小一個位元組(但絕不是每次只能傳一個位元組或字元!),
LVM和儲存裝置的單次最大I/O只受 LTG (logical track group) 大小的限制,預設為128KB,可修改。
塊裝置只能做定長的資料傳輸,資料必須經過 'kernel buffer cache'。
這個以512-byte block 為單位的buffer cache是傳統的塊裝置的快取,千萬不要和檔案系統的快取混為一談!!
這樣的存取方式不僅效率低,而且帶來諸多問題,嚴重影響大資料量傳輸的效能,
所以現代作業系統中幾乎不用塊裝置的方式進行高速儲存裝置的資料存取。
資料庫建議直接使用裸裝置,意指避開檔案系統和檔案系統的快取管理,直接和字元裝置打交道。
(注意:檔案系統一定是建在字元裝置上的,不可能建到塊裝置上)
這樣做的好處主要是三個:
1. 實現每個I/O的程式碼大大減少:filesystem 和 virtual memory for filesystem 的程式碼都規避了。
2. 避免了重複快取造成的記憶體浪費(資料庫和檔案系統都有自己的資料快取)。
3. 避免了檔案鎖的問題:檔案系統裡的檔案不能同時被多個程式或執行緒更新。
壞處也有:
1. 失去了透過對普通檔案進行管理的易用性。
2. 不能利用檔案系統的 Readahead 的功能,順序讀的速度可能做不到最優
自從有了DIO和CIO之後,基於檔案系統的資料庫效能得以大大提高。
CIO是最接近與裸裝置的一種基於檔案系統的資料庫執行方式,因為它解決了兩個問題:
沒有檔案快取(就是裸裝置優勢之2.);
沒有檔案鎖(就是裸裝置優勢之3.)。
它保持了檔案的可見性,所以不存在裸裝置劣勢之1。
當然DIO和CIO同樣不支援Readahead。
綜上所述:
+字元裝置和塊裝置是對同一個物理裝置的兩種不同的儲存方式的抽象。
+裸裝置這個感念是針對其上有無檔案系統來說的,和字元及塊裝置在概念上沒有任何實質聯絡;
+塊裝置的block buffer機制和檔案系統的快取是兩回事;
+塊裝置在現代作業系統中基本沒有任何用途。
+資料庫用裸裝置或檔案系統mount with CIO, 結合AIO (非同步I/O),可以達到最佳I/O效能
(在AIX 新版本中raw LV 和 CIO FS 均支援 AIO Fast Path );
其中Character Device 又被稱為 Raw Device (原因往下看):
比如:
# ls -l /dev/*hdisk0
brw------- 1 root system 22, 2 May 15 2007 hdisk0
crw------- 2 root system 22, 2 May 15 2007 rhdisk0
# ls -l /dev/*hd3
brw-rw---- 1 root system 10, 7 May 15 2007 /dev/hd3
crw-rw---- 1 root system 10, 7 May 15 2007 /dev/rhd3
這裡檔案屬性開頭的'c'字母代表Character, 檔名開頭的'r'字母代表Raw。
字元裝置支援不定長的資料傳輸 (data transfers of arbitrary sizes),最小一個位元組(但絕不是每次只能傳一個位元組或字元!),
LVM和儲存裝置的單次最大I/O只受 LTG (logical track group) 大小的限制,預設為128KB,可修改。
塊裝置只能做定長的資料傳輸,資料必須經過 'kernel buffer cache'。
這個以512-byte block 為單位的buffer cache是傳統的塊裝置的快取,千萬不要和檔案系統的快取混為一談!!
這樣的存取方式不僅效率低,而且帶來諸多問題,嚴重影響大資料量傳輸的效能,
所以現代作業系統中幾乎不用塊裝置的方式進行高速儲存裝置的資料存取。
資料庫建議直接使用裸裝置,意指避開檔案系統和檔案系統的快取管理,直接和字元裝置打交道。
(注意:檔案系統一定是建在字元裝置上的,不可能建到塊裝置上)
這樣做的好處主要是三個:
1. 實現每個I/O的程式碼大大減少:filesystem 和 virtual memory for filesystem 的程式碼都規避了。
2. 避免了重複快取造成的記憶體浪費(資料庫和檔案系統都有自己的資料快取)。
3. 避免了檔案鎖的問題:檔案系統裡的檔案不能同時被多個程式或執行緒更新。
壞處也有:
1. 失去了透過對普通檔案進行管理的易用性。
2. 不能利用檔案系統的 Readahead 的功能,順序讀的速度可能做不到最優
自從有了DIO和CIO之後,基於檔案系統的資料庫效能得以大大提高。
CIO是最接近與裸裝置的一種基於檔案系統的資料庫執行方式,因為它解決了兩個問題:
沒有檔案快取(就是裸裝置優勢之2.);
沒有檔案鎖(就是裸裝置優勢之3.)。
它保持了檔案的可見性,所以不存在裸裝置劣勢之1。
當然DIO和CIO同樣不支援Readahead。
綜上所述:
+字元裝置和塊裝置是對同一個物理裝置的兩種不同的儲存方式的抽象。
+裸裝置這個感念是針對其上有無檔案系統來說的,和字元及塊裝置在概念上沒有任何實質聯絡;
+塊裝置的block buffer機制和檔案系統的快取是兩回事;
+塊裝置在現代作業系統中基本沒有任何用途。
+資料庫用裸裝置或檔案系統mount with CIO, 結合AIO (非同步I/O),可以達到最佳I/O效能
(在AIX 新版本中raw LV 和 CIO FS 均支援 AIO Fast Path );
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156798/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AIX 上建立裸裝置lv出現的問題AI
- 記錄一則AIX使用裸裝置安裝OracleRAC的問題AIOracle
- aix5.3上使用裸裝置建立表空間AI
- ORACLE GOLDENGATE抽取程式在AIX裸裝置環境中無響應OracleGoAI
- Redhat 5 中裸裝置(raw) 的配置Redhat
- 給oracle新增裸裝置資料檔案(AIX單機)OracleAI
- 字元裝置、塊裝置與裸裝置字元
- 字元裝置、塊裝置、裸裝置、RAW裝置 .字元
- [轉]RedHat 5中裸裝置(raw)的配置Redhat
- 裸裝置與塊裝置的區別
- RHEL5中裸裝置的建立簡介
- 建立裸裝置庫
- raw 裸裝置資料檔案更改其他raw裸裝置位置
- SOLARS AIX LINUX 下移動資料庫檔案到裸裝置AILinux資料庫
- udev 裸裝置 安裝racdev
- 裸裝置、字元裝置、塊裝置不全面比較字元
- oracle 裸裝置(轉載)Oracle
- 為ASM生成裸裝置ASM
- linux裸裝置操作Linux
- linux下裸裝置的使用Linux
- LINUX下裸裝置的操作Linux
- aix裝置改名AI
- AIX 共享磁碟中的字元裝置(/dev/rhdiskn)及塊裝置(/dev/hdiskn)AI字元dev
- Oracle RAC--在Linux中建立裸裝置OracleLinux
- ORACLE中裸裝置資料檔案RESIZE/AUTOEXTEND ONOracle
- Linux裸裝置總結Linux
- 【儲存】裸裝置和OracleOracle
- linux下新增裸裝置Linux
- 裸裝置基礎知識
- linux下配置裸裝置Linux
- oracle9.2.0在RHEL中建庫使用裸裝置Oracle
- oracle安裝使用裸裝置問題Oracle
- linux udev裸裝置繫結Linuxdev
- Linux-建立裸裝置RawLinux
- Linux裸裝置管理詳解Linux
- 裸裝置基礎知識(轉)
- Linux裸裝置管理學習Linux
- Linux裸裝置總結(ZT)Linux