oracle中的asm文化

jeanron100發表於2015-08-14

從oracle中ASM的發展來看,到今天的普及使用,應該可以算做一種文化,因為這體現的不僅是ASM技術在實際工作中的成功普及,而且從某種程度來說,都代表了一個新生事物的發展歷程,無論是java的發展還是各種開源專案的普及,都有著相似的痕跡。
asm從Oracle 10g版本推出,是作為grid的一部分鼓勵使用的。而在這段漫長的時間裡面,其實asm就在逐漸完善。
就如同你去公司內部推廣一套很新技術的時候,人家肯定得衡量你的東西是不是足夠好,如果效能指標能夠達到指數級的提升,或者操作能夠簡化到極致,而且穩定,那麼很多人都會不由自主的去使用。
而從Oracle的發展來說,涉足儲存領域,而且直接推出自動化儲存管理,著實是一個大手筆。Oracle 10g版本之前,在Linux,unix系統中大體都是在作業系統層面設定邏輯卷LVM,然後把LVM分成多個卷組,在各個卷組上去劃分相應的邏輯卷,最後在邏輯捲上安裝檔案系統,掛載後就可以提供檔案的管理。
同時裸裝置技術也在大量使用,因為效能確實很好,在磁碟上不用建立檔案系統就尅使用Oracle例項來直接讀寫磁碟。
無論採用檔案系統還是裸裝置都是實現的方式,但是都有一定的缺點或者限制,檔案系統中的更多的是效能的考慮,而在裸裝置中則是管理帶來的不便,一旦在裸裝置上建立檔案,檔名和大小都不能再改了。

ASM在這個基礎上做了一個折中,即提高效能,拋棄了檔案系統,然後又提供了方便的檔案管理,當然還有更多的難點和痛點,這些都是已有方案的弊端和不方便不完善之處。
我也蒐集了一些。大體有下面的一些方方面面。
      1. 對於歸檔日誌和備份,作業系統供應商不提供共享磁碟檔案系統。

  2. 邏輯卷管理器隱藏了檔案的位置,使得很難管理磁碟I/O和提供良好的統計。

  3. 當磁碟數超過100時,現有的lvm不能工作得很好。

  4. 當資料庫有1000以上的資料檔案時,作業系統和Oracle不能很好地處理資料庫。

  5. 當有大量資料檔案時命名就變得很困難了。

如果從技術層面來說有些問題忍了就忍了,可以規避,但是如果把這些缺點都利用起來,當做改進的一些專攻點,這樣缺點不足就成為了優勢。
說起ASM,不得不提到他的初始架構師bill bridge,對於asm的規劃其實在很早就開始了,可以追溯到上個世紀1996年左右,那時候網際網路還在起步階段,sun還是原來的sun,其中肯定也有更多的曲折,最大的障礙應該是挑戰權威,讓已有的方案存在危機感和改進空間,不管怎麼樣,最後總算是在1999年正式審批了這個專案。
最初的定位從PSM,ODM,OSM,到了最終的ASM,PSM從字面來看就是parallel storage manager,還是和ops有一定聯絡,而odm(oracle data manager),OSM(oracle storage manager)到ASM(automatic storage manager),從名字也能看出一個發展的歷程,也是逐步在改善,沒有一步到位。
從我在10g開始接觸到asm,也是帶有很多的顧慮,更多的都是矯情。大體的理由如下:
    1.asm又做了一層抽象,還是感覺檔案系統中的檔案踏實
    2.老是怕asm有問題,如果出了問題,更加黑盒了。
    3.新技術,新風險
    4.缺乏瞭解,會有一種莫名的排斥感。
我覺得很多人應該和我有著差不多的想法,但是技術就是這樣與時俱進,最終的目的當然還是簡化工作,提高效率,而且ASM確實做到了。
普通檔案系統的資料庫遷移到ASM下步驟也簡化了很多,感覺檔案系統中的檔案更加踏實,其實實際中我們也很少直接去管理這些檔案,就算拿到檔案也是二進位制檔案,我們還是什麼都做不了。要說風險,肯定是有的,我記得一個老師曾經這麼說過,如果說asm存在風險,損壞的可能性,那麼它損壞的可能性和檔案系統式一樣的。如果說在課餘自己接觸下新技術,可能心態就很開放,但是到了實際的工作中,就馬上嚴肅認真,就得好好評估,企業資料的安全是DBA存在意義所在。是不是在內心也在打退堂鼓,也是這樣也就越來越會存在一些距離感,排斥感。
如果說在10g中asm不夠成熟,也有一定的道理,asm是作為grid在10g推出,也算是新特性的試水,但是在11g中開始做了更多的加強和改進,所以使用起來還是會有不少的亮點,比如在10g中asm和oracle使用者時放在一起的,可能會造成一些誤操作和管理的不夠方便,在11g中把asm納入了grid infrasture這個體系中,原本在10g中的dbca來配置管理asm在11g中就有了新的命令asmca,在11g中把asm和資料庫層面做了一種隔離,當然這些都是改進,到了exadata中,就賦予了asm更多的使命,做為exadata的標配,這個時候多個asm就可以管理更多的exadata單元。把原本rac中的共享儲存的單點損壞做了加強,可以提供更高更完善的冗餘機制,也是對rac的一種補充。
說到接受新事物,讓我想起一件事,記得前幾天我爸問我說,怎麼銀行要扣銀行卡上的錢,只用發個簡訊驗證碼就能直接扣款,自己就感覺卡上的錢不安全了,就想去重新辦一張卡,這樣應該就安全了。然後我就耐心的給他解釋,這是xx公司和銀行之間的一個協定,他們會給你傳送簡訊資訊進行驗證,然後得到本人的確認才能扣款,而且他們扣款也不是直接拿入自己腰包,就跟京東刷卡支付一樣,送貨員也沒法多刷你一分錢,對他們來說就是一個單號。所以換了張卡也不管用,然後又解釋了一通,他才明白了,就沒有再辦卡。
很多時候我們在接受新事物也是這種類似的態度,技術變更再快都是以提高效率和工作方式,如果某個軟體再開源,功能複雜不好用,效能提升不高,那麼接受它的難度和成本就有些太高了。所以從asm算是成功接受了時間的考驗。自己也要多花點精力關注關注,看看我們能夠做些什麼,在技術發展的道理上能夠添磚加瓦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1771978/,如需轉載,請註明出處,否則將追究法律責任。

相關文章