Linux平台上配置Oracle ASMLib和磁碟多重路徑

來源:互聯網
上載者:User

Linux平台上配置Oracle ASMLib和磁碟多重路徑

配置Oracle ASMLIB和多重路徑磁碟

以下文檔描述如何在linux的平台下使用Oracle的asmlib來訪問多重路徑的磁碟,無論您使用哪種多重路徑的軟體,該文檔是建立在已經建立好了多重路徑磁碟的基礎上的。這個文檔給出的多重路徑磁碟的名稱是" multipatha",和儲存廠商無關。

涉及多重路徑軟體的問題:

在使用多重路徑軟體的時候,我們有兩個問題需要面對:ASM無法同時看到2次同樣的磁碟,這樣會出現錯誤。每塊盤在多重路徑的配置下會出現至少3次,如:

磁碟的第一條路徑

磁碟的第二條路徑

由多重路徑軟體彙總的邏輯路徑

下面是一個例子:假設一個系統有一個本地磁碟,為/ dev/ sda上,和一個磁碟通過外部儲存串連.該主機擁有2條鏈路或者路徑來訪問這個外部的儲存。

Linux的SCSI驅動會看到所有的這兩條路徑。他們會顯示成/dev/sdb和/dev/sdc.系統可以通過sdb或者sdc來訪問到同樣的終端。

此時,如果我們啟用多重路徑的軟體來管理,會有一條多重路徑軟體彙總出來的磁碟 ,如/dev/multipatha,它能通同時訪問到這兩個路徑,也就是說,任何I/ O使用multipatha可以通過任何一條路徑來訪問磁碟。如果一個系統使用sdb路徑,而這條鏈路上的電纜被拔出時,系統會收到錯誤。但是multipath的磁碟會知道切換到sdc的路徑上去繼續工作。

大部分的軟體是無法識別出來多重路徑的配置的,它可以使用任何一條路徑:sdb或者sdc或者是multpatha,並且是無法知道有什麼區別的。ASMLIB也一樣,預設的配置中,ASMLIB也是不會關心使用那條路徑的。

ASMLIB會選擇,並且只會選擇一條路徑,因為ASM不能同時管理兩塊相同的磁碟。這樣我們就解決了第一個問題。ASM只會看到一條路徑,而且可以正常的工作。

這就出現了第二個問題:ASM究竟看到的是那個路徑?

預設的情況下,ASMLIB會選擇第一條它找到的路徑.Linux系統中給出的第一條路徑,第一條路徑取決於磁碟的驅動,它可能是multipath 或者是某一條單路徑。

系統管理員希望ASMLIB始終使用多重路徑的磁碟!如果Oracle不是使用它,有什麼指定的方式嗎?

答案是沒有,儘管如此,如果我們想讓ASMLIB知道多重路徑軟體的磁碟看起來是什麼樣的,那麼我們必須通過配置來告訴它:

磁碟掃描順序:

ASMLIB是通過ASMLIB安裝中描述的過程來把磁碟標識成ASMLIB使用的磁碟。ASMLIB通過一個磁碟掃描的過程來知道哪些磁碟是被標識過的。ASMLIB每次啟動的時候都會運行一次這樣的掃描,當然系統管理員可以通過/etc/init.d/oracleasm scandisks的命令來強製做一次掃描。ASMLIB會檢查系統中的每一塊磁碟。它會檢查每一塊盤是否被標識成了asmlib的磁碟,所有被標識過的磁碟都是ASMLIB的有效盤,通常情況下,ASMLIB通過OS的列表順序來檢查這些磁碟,大部分的OS都能提供合理的順序。

上邊我們說的情況,我們描述了一種OS的順序不夠好的情況。系統管理員希望ASMLIB在看到單路徑的盤之前先掃描到多重路徑的彙總磁碟。這樣ASMLIB會選擇多重路徑彙總出來的磁碟,並把它交給Oracle使用。

ASMLib允許兩種修改方式來控制磁碟掃描的順序。第一種,它允許我們排除一部分不需要掃描的磁碟。換句話說,ASMLib會完全忽略這些磁碟。第二種,系統管理員可以指定哪些磁碟先被掃描.指定的這些磁碟會在系統中其它磁碟掃描之前完成掃描。

多重路徑軟體配置中可以使用任意一種方式,系統管理員可以選擇排除所有的單路徑磁碟的方式,這樣ASMLib會忽略他們,只掃描多重路徑的磁碟。或者系統管理員可以指定多重路徑的盤被先掃描。這樣ASMLib就會先發現彙總路徑的盤,優先選擇先發現的磁碟。

配置掃描的順序:

ASMLib的設定檔的路徑在/etc/sysconfig/oracleasm.它被連結到檔案/etc/sysconfig/oracleasm-_dev_oracleasm 工具會讀取後邊的這個檔案。這裡包含了所有系統管理員通過/etc/init.d/oracleasm configure 命令配置的啟動配置資訊,但是命令不能配置掃描的順序。

該設定檔中包含很多配置的變數。我們可以使用以下2個:

ORACLEASM_SCANORDER 參數指定了哪些磁碟被優先掃描;

ORACLEASM_SCANEXCLUDE參數指定了哪些磁碟在掃描的過程中被忽略掉;

該變數用空格分隔的前置詞字元串列表來匹配.換言之,如果一個磁碟的開始部分和首碼相同,那麼就是匹配。例如,前置詞字元串sd會匹配到所有的SCSI驅動的裝置。注意不是模糊比對.參數裡不要使用萬用字元,他們是簡單的前置字元。另外注意 /dev/ 路徑並不是前置字元的一部分。

注意:當掃描的過程中,只有核心知道的裝置名稱才會被掃描得到。當使用device-mapper的時候,核心看到的裝置是/dev/dm-XX。在/dev/mapper/XXX中的裝置名稱是udev建立的其它可讀性的名稱。無論是ORACLEASM_SCANORDER 還是 ORACLEASM_SCANEXCLUDE必須使用 dm 前置字元。

以下是一些例子:

注意:如果我們手工的編輯/etc/sysconfig/oracleasm,一定確保不要破壞該檔案到/etc/sysconfig/oracleasm-_dev_oracleasm的連結。

多重路徑磁碟優先讀取:

系統管理員配置ASMLib來有限讀取多重路徑軟體的彙總盤,在ASMLib的設定檔中,編輯ORACLEASM_SCANORDER變數,如下格式:

ORACLEASM_SCANORDER="multipath sd"

此時,在掃描的過程中,ASMLib會首先尋找以"multipath"開頭的磁碟。多重路徑的裝置/dev/multipatha 當然是符合的。這樣它就會被優先掃描到。然後ASMLib開始尋在以"sd"開頭的磁碟。這些是SCSI的磁碟。本地裝置/dev/sda會被掃描到,但是它並非一個ASM的磁碟。

單路徑的磁碟/dev/sdb和/dev/sdc也會被掃描到,他們是ASM的磁碟,但是ASMLib 會發現已經有了一條通道來訪問它。ASMLib會忽略他們。接下來ASMLib會繼續掃描其它沒有匹配前置字元的磁碟。

排除單路徑的磁碟:

系統管理員可以配置ASMLib來忽略但路徑的磁碟。在ASMLib的設定檔中,編輯ORACLEASM_SCANEXCLUDE變數,如下格式:

ORACLEASM_SCANEXCLUDE="sdb sdc"

這裡,系統管理員做了一些配置。ASMLib會排除掉完全符合的磁碟/dev/sdb和/dev/sdc.它不會忽略其他的SCSI磁碟。這樣,ASMLib在掃描的過程中就會忽略這2塊磁碟,僅僅會看到/dev/multipath的磁碟,同樣,Oracle會使用多重路徑的磁碟。

EMC PowerPath 和ASMLib

很多系統管理員會使用EMC PowerPatch來做多重路徑和ASMLib的磁碟配置。

儘管如此,PowerPath和2.4 kernels EMC是不支援的。Linux系統2.6核心,如RHEL 4或者SLES 9以及2.0ASMLib kernel 驅動是支援的。

關於EMC Power Patch的使用,請參考EMC Support Matrix的文檔來校正任何/所有 相容性的需求是否滿足。

如果您有任何關於 ASMLib 和 PowerPath 在Linux 2.4 Kernel上的使用,如RHEL3 SLES8 等平台上的疑問,請諮詢EMC

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機器中安裝步驟

Debian 下 安裝 Oracle 11g XE R2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.