Linux 集群檔案系統簡介

2021-04-08 13:18:28 字數 3540 閱讀 1284

linux 集群檔案系統簡介

集群檔案系統在多個方面完善了 oracle rac 的資料庫集群功能。以下是它們的對比情況。

通常,集群只是一組作為單一系統執行的伺服器(pc 或者工作站)。但是,這個定義的外延不斷顯著擴大;集群技術現在不但是乙個動態領域,而且其各種應用程式正不斷吸收新的特性。此外,集群檔案系統技術(無論是開放源**的還是專有的)在其功能方面正在迅速趨同。

很多人談到集群應用程式和其中所使用的檔案系統軟體時,就象它們完全是一回事似的。更準確地說,大多數集群包含兩個主要元件:通過快速網路連線共享儲存介質的伺服器和充當軟體「粘合劑」使集群節點保持協作的檔案系統。

在「linux 檔案系統精通指南」一文中,我解釋了檔案系統方法和資料結構如何提供硬碟分割槽物理結構的使用者級視角。雖然各專案之間有所不同,但集群檔案系統為集群的多個節點所做的工作是相同的:它們使所有節點看上去都象是單一系統的一部分,同時允許集群的所有節點進行併發的讀寫操作。

在本篇後續文章中,我們將從較高角度來介紹集群檔案系統之間的總體差別以及 oracle 真正應用集群 (rac) 環境的某些特性。剛接觸集群、linux 檔案系統或 oracle rac 的資料庫管理員或系統管理員會發該文很有教育意義。

集群應用程式簡介

集群應用程式具有各種級別的成熟度和功能。它們包括:

這些集群應用程式具有重疊的特性,其中乙個或多個特性通常可在單個集群應用程式中找到 — 尤其是在 ha 和負載均衡集群中。例如,oracle rac 可以安裝在 ha 集群檔案系統上,從而將資料庫集群的優點引入 ha 集群應用程式,如:

現在讓我們來看一些可以選用的支援 oracle rac 並具有集群感知的 linux 檔案系統,以及它們如何完善 oracle rac 的功能。

可以執行 oracle 的集群檔案系統

oracle rac 技術已經提供了諸如負載均衡、冗餘、故障切換、可伸縮性、快取記憶體和鎖定等特性,因此當 oracle 資料檔案位於安裝有傳統 linux 檔案系統(如 ext2/ext3)的塊裝置上時會出現功能的重複。在這種情況下效能降低了,因為 oracle 和檔案系統的快取記憶體消耗了記憶體資源。

到寫本文時為止,除了第三方集群檔案系統之外,還有四種可選用的執行 oracle rac 的檔案系統。按 oracle 的推薦順序,它們依次為:

oracle 自動儲存管理

oracle 集群檔案系統

網路檔案系統

原始裝置。

oracle 自動儲存管理 (a**) oracle 的乙個特點就是,無論它在哪種環境中執行,一旦您獲得乙個 oracle api,則所有的外觀、體驗和操作都相同。oracle a** 是 oracle 資料庫 10g 的乙個特性,它將這種一致的環境擴充套件到儲存管理方面,使用 sql 語句、oracle enterprise manager 網格控制或資料庫配置助手程式來建立和管理儲存內容和元資料。將 a** 用於 oracle 資料庫 10g 資料檔案儲存被認為是最佳方法。

a** 中的基本資料結構是磁碟組,它由乙個或多個磁碟組成。在該語境中,「磁碟」可以是乙個磁碟分割槽、乙個完整的磁碟、乙個級聯磁碟、乙個儲存裝置的分割槽或者乙個完整的儲存裝置。

一定要認識到,a** 並非通用集群檔案系統。相反,a** 是乙個具有集群感知的檔案系統,專門為處理 oracle 資料庫檔案、控制檔案和日誌檔案而設計。a** 不應與邏輯卷管理器 (lvm) 共用,這是因為後者會使 a** 無法識別磁碟。

a** 執行以下功能:

當安裝在原始裝置或者安裝在 oracle 所推薦的那些使用 a** 庫驅動程式的塊裝置上時,a** 自身作為例項來執行,該例項先於資料庫例項啟動。它使 dba 能夠建立、擴充套件和縮小磁碟,並將這些變化對映到共享訪問這些組的其他節點上的磁碟組。資料庫例項能夠在集群的多個節點間共享儲存器的集群池。

a** 由 oracle 通用安裝程式安裝。如果將 a** 新增到乙個現有的資料庫中,則要確保將資料庫設定為從屬於 a** 例項,以便在啟動時 a** 例項先於所從屬資料庫啟動。例如:

$ srvctl modify instance -d o10g -i o10g1 -s +a**1

使 o10g1 例項從屬於 +a**1 例項。

a** 例項與 oracle 資料庫例項的區別表現在以下幾方面:

儘管可以使用幾個 v$ 檢視來獲得關於 a** 例項的資訊,但沒有資料字典:v$a**_diskgroup、v$a**_client、v$a**_disk、v$a**_file、v$a**_template、v$a**_alias 和 v$a**_operation。

您只能以 sysdba 或 sysoper 連線 a** 例項。

有五個初始化引數用於 a** 例項,其中 instance_type 是必要的,並應該設定如下:instance_type = a**。

在 a** 例項中,dba 可以使用 sql 語法或 enterprise manager 來:

使用乙個或多個磁碟為儲存池定義乙個磁碟組

在磁碟組中新增和刪除磁碟

定義乙個故障組 來增加資料冗餘保護。通常這是磁碟組中一系列需要不間斷執行的磁碟,它們共享一種共用資源,如控制器。

可以通過 enterprise manager 或通過 v$a** 檢視監視 a** 磁碟組的狀態。您還可以在建立資料庫結構時在乙個資料庫例項中引用它們來分配儲存器。

當您建立表空間、重做日誌、歸檔日誌檔案和控制檔案時,通過在初始化引數或者在 ddl 中指定磁碟組,您可以從資料庫例項中引用 a** 磁碟組。

有關 a** 的更多詳細資訊,請參見 lannes morris-murphy 的 otn 文章「自動的儲存」、arup nanda 的「oracle 資料庫 10g:為 dba 提供的最重要的 20 個特性」中的 a** 部分以及 oracle 資料庫管理員指南 10g 第 1 版 (10.1) 的第 12 章

。 oracle 集群檔案系統 (ocfs)

ocfs 專門為支援 oracle rac 應用程式的資料和磁碟共享而設計。它在 rac 集群的伺服器節點間提供一致的檔案系統映像,充當原始裝置的替身。除了簡化集群資料庫管理外,它還在保持原始裝置效能優勢的同時克服了原始裝置的侷限性。

ocfs 第 1 版支援 oracle 資料檔案、spfile、控制檔案、仲裁磁碟檔案、歸檔日誌、配置檔案以及 oracle 集群登錄檔 (ocr) 檔案(oracle 資料庫 10g 中的新檔案)。設計它不是為了使用其他檔案系統的檔案,甚至不是為了使用那些必須在集群每個節點上安裝的 oracle 軟體 — 除非您使用第三方解決方案。此外,ocfs 不提供諸如 i/o 分配(分割)等 lvm 功能,也不提供冗餘功能。

有三種不同的 rpm 程式包:

結論

oracle rac 提供了乙個檔案系統(集群的或非集群的)所具有的很多功能,最大程度地減輕了檔案系統本身的工作。如前所述,所需要的只是乙個對 oracle rac 現有的、內在的資料庫集群功能進行補充的檔案系統。儘管 ocfs、nfs 和原始裝置也可能是可行的方法,但在大多數情況下,a** 會最大程度地實現這一目的,從而被視為 oracle 的最佳實踐。還可以將 a** 用於資料檔案,ocfs 用於表決磁碟、ocr 和 oracle 主目錄,以及在 nfs 儲存器上使用 a**。

將來我們還可以期待另乙個方法,就是 ocfs 第 2 版能夠使用共享的 oracle 主目錄,從而完善 a** 上的共享儲存器。

Linux檔案系統簡介

隨著 linux的不斷發展,越來越多的人開始使用linux,對於那些剛剛接觸的人來說,恐怕最先感到困惑的就是那些 不明不白 的目錄了。如果想熟練使用 linux,讓linux聽命於自己,就必須掌握這些目錄,下面就以xteam公司的最新產品 xteamlinux 4.0為例,介紹一下在該系統下的目錄。...

linux檔案系統簡介

正文 一般來說,在linux 系統中都有最少兩個掛載點,分別是 根目錄 及 swap 交換分割槽 其中,是必須的 詳細內容見下文 建議掛載的幾大目錄 根目錄,唯一必須掛載的目錄。不要有任何的猶豫,選乙個分割槽,掛載它!在絕大多數情況下 有2g 的容量應該是夠用了。當然了,很多東西都是多多益善的 sw...

Linux檔案系統簡介

1 檔案系統裡面的幾個概念 2 概念理解 1 超級塊 在linux系統中把磁碟分成乙個個的資料塊來儲存資料,超級塊儲存整個分割槽的系統資訊,包括 塊大小,檔案系統版本號,上次mount的時間等等 2 塊組描述符表 整個分割槽有多少個塊組,就有多少個塊組描述符,每個塊組描述符儲存該塊組的資訊。例如在這...