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使用裸裝置安裝OracleRAC的問題AIOracle
- raw 裸裝置資料檔案更改其他raw裸裝置位置
- Linux裸裝置總結Linux
- linux udev裸裝置繫結Linuxdev
- DM7使用裸裝置搭建DMRAC
- DM8 使用裸裝置搭建DMRAC
- 基於裸裝置的ASM磁碟組擴容方案ASM
- AIX的yum安裝AI
- rhel 7.x 使用 udev scsi rules 配置裸裝置dev
- Linux下基於裸裝置建立10g資料庫Linux資料庫
- vmware + 裸裝置 + crs + oracle10g RAC搭建步驟(二):安裝linuxOracleLinux
- Linux中的主次裝置Linux
- Linux裝置樹的傳遞及Kernel中對裝置樹的分析Linux
- aix安裝oracle客戶端AIOracle客戶端
- RAC安裝【AIX 7 + 11.2.0.4 + ASM】AIASM
- 利用rman copy的方法實現儲存上裸裝置資料檔案的遷移ITPUB
- 5.裝置中斷
- 【AIX】AIX程式監控工具AI
- IO裝置在OS中的權衡
- emc cx500上的基於linux的3節點rac上的裸裝置的使用和效能測試Linux
- 安裝c, c++編譯器 on AIXC++編譯AI
- AIX6.1下安裝及配置VNCAIVNC
- 虛擬化中裝置直通的實現
- linux-中塊裝置檔案和字元裝置檔案的本質區別Linux字元
- AIX VGDAAI
- 使用lsblk命令列出系統中的塊裝置命令列
- telnetlib中興裝置自動化
- 實用的 IEC61850 裝置裝置模擬器
- 【AIX-PS】AIX系統ps命令詳解AI
- 在Linux中,什麼是裝置驅動程式?如何安裝和解除安裝裝置驅動程式?Linux
- TWaver在FTTX裝置網管系統中的應用
- Audio Hijack教程:如何捕獲iOS裝置中的音訊iOS音訊
- 裝置地址
- 字元裝置驅動 —— 字元裝置驅動框架字元框架
- 使用NIM Server網路半自動安裝AIX系統ServerAI
- Install python on AIX 7PythonAI
- AIX掛載NFSAINFS
- AIX_EXT_VGAI