ASM 翻譯系列第三十三彈:REQUIRED_MIRROR_FREE_MB的含義
ASM 翻譯系列第三十三彈:ASM 高階知識 REQUIREDMIRRORFREE_MB
原文: REQUIREDMIRRORFREE_MB 作者: Bane Radulovic譯者:陳亞軍,沃趣科技資料庫技術工程師,主要參與公司產品實施、測試、維護以及最佳化。 審校:魏興華
REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB是V$ASM_DISKGROUP[_STAT]檢視中非常有趣的兩列。Oracle Support部門收到的很多問題是關於這兩列的意義以及它們的值是怎麼計算的。我本打算寫些文章介紹一下,但是我意識到我不可能比Harald van Breederode做的更出色。因此我徵得了他的同意來直接參考他的文章,所以還是請欣賞他的大作吧。
How much space can I use
既然已經解釋了REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB,我想補充說明的是ASM不會阻止你使用所有可用空間(NORMAL冗餘模式下總空間的1/2或者HIGH冗餘模式下總空間的1/3)。但是一旦你使用完了所有磁碟組空間,將沒有剩餘空間用來擴充套件或者新增任何其它檔案,在這種情況下,如果有磁碟出現故障,同樣不會有剩餘空間用來讓資料重新滿足需要的冗餘度——直到故障的磁碟被替換並且Rebalance完成。
Exadata with ASM version 11gR2
在安裝了11.2 ASM版本的Exadata中,REQUIRED_MIRROR_FREE_MB等於磁碟組中最大的failgroup的大小(在真實的Exadata環境中,所有的failgroup都預設大小相同)。為了驗證這個說法,讓我們來看一個安裝了11.2 ASM的Exadata的情況。
和大部分的Exadata安裝一樣,這裡有3個磁碟組。
``` [grid@exadb01 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on [date]
SQL> select NAME, GROUPNUMBER from v$asmdiskgroup_stat;
NAME GROUP_NUMBER
DATA 1 DBFS_DG 2 RECO 3
SQL> ```
出於列舉這個例子的目的,我們將會看下DBFS_DG這個磁碟組。通常情況下DBFS_DG的每個failgroup有10個磁碟。為了驗證REQUIRED_MIRROR_FREE_MB就是最大的failgroup的大小,這裡我drop掉了部分磁碟。
``` SQL> select FAILGROUP, count(NAME) "Disks", sum(TOTALMB) "MB" from v$asmdiskstat where GROUPNUMBER=2 group by FAILGROUP order by 3;
FAILGROUP Disks MB
EXACELL04 7 180096 EXACELL01 8 205824 EXACELL02 9 231552 EXACELL03 10 257280
SQL> ```
注意最大的failgroup的總大小為257280MB。
最後,我們發現REQUIRED_MIRROR_FREE_MB就是最大的failgroup的大小:
``` SQL> select NAME, TOTALMB, FREEMB, REQUIREDMIRRORFREEMB, USABLEFILEMB from v$asmdiskgroupstat where GROUPNUMBER=2;
NAME TOTALMB FREEMB REQUIREDMIRRORFREEMB USABLEFILE_MB
DBFS_DG 874752 801420 257280 272070
SQL> ```
ASM中使用如下公式計算USABLE_FILE_MB:
USABLE_FILE_MB = (FREE_MB - REQUIRED_MIRROR_FREE_MB) / 2
得到的結果為:272070MB
Exadata with ASM version 12cR1
在安裝12cR1版本ASM的Exadata中,REQUIRED_MIRROR_FREE_MB等於磁碟組中最大的磁碟的大小。 這裡是一個來自安裝了12.1.0.2.0 ASM的Exadata系統的例子。
``` [grid@exadb03 ~]$ sqlplus / as sysasm
SQL*Plus: Release 12.1.0.2.0 Production on [date]
SQL> select NAME, GROUPNUMBER from v$asmdiskgroup_stat;
NAME GROUP_NUMBER
DATA 1 DBFS_DG 2 RECO 3
SQL> ```
同樣,我把DBFS_DG磁碟組中的failgroups設定成不同的大小。
``` SQL> select FAILGROUP, count(NAME) "Disks", sum(TOTALMB) "MB" from v$asmdiskstat where GROUPNUMBER=2 group by FAILGROUP order by 3;
FAILGROUP Disks MB
EXACELL05 8 238592 EXACELL07 9 268416 EXACELL06 10 298240
SQL> ```
最大的failgroup的總大小為298240MB,但是這一次REQUIRED_MIRROR_FREE_MB的大小為29824MB:
``` SQL> select NAME, TOTALMB, FREEMB, REQUIREDMIRRORFREEMB, USABLEFILEMB from v$asmdiskgroupstat where GROUPNUMBER=2; 2 3
NAME TOTALMB FREEMB REQUIREDMIRRORFREEMB USABLEFILE_MB
DBFS_DG 805248 781764 29824 375970
SQL> ```
正如我們看到的,這是磁碟組中最大的磁碟的大小:
``` SQL> select max(TOTALMB) from v$asmdiskstat where GROUPNUMBER=2;
MAX(TOTAL_MB)
29824
SQL> ```
USABLE_FILE_MB的大小透過同樣的公式計算獲得:
USABLE_FILE_MB = (FREE_MB - REQUIRED_MIRROR_FREE_MB) / 2
結果為:375970MB
Conclusion
REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB是為了幫助DBA和儲存管理員來規劃磁碟組的容量和冗餘度而設計的。在ASM中,它們的值只作為參考,並不具有強制性。
在12cR1 ASM版本的Exadata中,REQUIRED_MIRROR_FREE_MB等於磁碟組中最大磁碟的大小,設計就是這樣的,反映了該領域的經驗:磁碟才是發生故障的元件,而不是整個儲存節點。
譯者注:真實的環境中,整個儲存節點整體壞掉的可能性比較小,一般都是瞬時的故障(如斷電),因此整個儲存出問題後,一般能及時修復,而磁碟一般故障後會直接壞掉,大多數情況不可修復,磁碟故障的機率要比整體儲存節點故障的機率高很多。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2134227/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM 翻譯系列第十三彈:ASM 高階知識 - Forcing the issueASM
- ASM 翻譯系列第十一彈:高階知識 Offline or drop?ASM
- ASM DG Usable_file_MB和Req_mir_free_MB的含義ASM
- [Spring Cloud Tutorial翻譯系列]微服務-定義、原則、好處SpringCloud微服務
- TypeScript 官方手冊翻譯計劃【十三】:模組TypeScript
- Clang 之旅--[翻譯]新增自定義的 attribute
- # 翻譯:Shadow DOM隔離釋義
- voltDB官方文件第三章翻譯
- Serilog文件翻譯系列(三) - 基礎配置
- Serilog文件翻譯系列(一) - 入門指南
- Spring系列(零) Spring Framework 文件中文翻譯SpringFramework
- 《Web 推送通知》系列翻譯 | 引言&概覽Web
- [非專業翻譯] Mapster - 自定義對映
- IdentityServer4-客戶端定義-翻譯IDEServer客戶端
- hadoop官網翻譯第三天Hadoop Cluster SetupHadoop
- 騰訊互動翻譯的坑爹翻譯
- [Java 8 Tutorial翻譯系列]Java forEach詳解Java
- LWN 文章翻譯 - 名字空間實作系列
- 閉包的含義
- 回表的含義
- CAP 定理的含義
- [非專業翻譯] Mapster - 自定義命名約定
- bootstrap含義boot
- instanceof 含義
- 翻譯
- Serilog文件翻譯系列(四) - 結構化資料
- Makefile中:=, =, ?=和+=的含義
- Java中static的含義Java
- url中#(hash)的含義
- Spring中bean的含義SpringBean
- Arctime怎麼翻譯字幕?Arctime批次翻譯字幕的技巧
- SMART原則的定義和含義
- Symbol 的作用[翻譯]Symbol
- [翻譯]JavaScript的成本JavaScript
- [非專業翻譯] Mapster - 自定義對映邏輯
- 蝴蝶書-task2: 文字推理、摘要、糾錯 transformers實現翻譯 OpenAI翻譯 PyDeepLX翻譯 DeepLpro翻譯ORMOpenAI
- Ubuntu安裝劃詞翻譯軟體Goldendict 單詞翻譯 句子翻譯UbuntuGo
- 如何完成中文翻譯日文線上翻譯
- [翻譯]Windows Exploit開發教程第十三章Part5.IE10 UAF漏洞WindowsIE10