在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製

文章的翻譯是在課程開始前夕準備的 “Linux 管理員。 虛擬化與叢集".

DRBD(分散式複製塊設備)是一種適用於 Linux 的分散式、靈活且普遍可複製的儲存解決方案。它反映了硬碟、分割區、邏輯磁碟區等區塊裝置的內容。伺服器之間。它在兩個儲存裝置上建立資料副本,以便在其中一個儲存裝置發生故障時,可以使用第二個儲存裝置上的資料。

你可以說這就像 網路RAID配置 1 磁碟映射到不同的伺服器。然而,它的工作方式與 RAID(甚至網路 RAID)完全不同。

最初,DRBD 主要用於高可用性(HA)電腦集群,但是從版本 XNUMX 開始,它可以用於部署雲端儲存解決方案。

在本文中,我們將解釋如何在 CentOS 上安裝 DRBD,並簡要示範如何使用它在兩台伺服器之間複製儲存(分割區)。這是在 Linux 上開始使用 DRBD 的完美文章。

測試環境

我們將使用兩個節點叢集來進行此設定。

  • 節點1:192.168.56.101 – howtoing.howtoing.lan
  • 節點2:192.168.56.102 – server1.howtoing.lan

第 1 步:安裝 DRBD 軟體包

DRBD 作為 Linux 核心模組實作。它是虛擬塊設備的驅動程序,因此位於系統 I/O 堆疊的最底部。

DRBD 可以從 ELRepo 或 EPEL 安裝。讓我們先導入 ELRepo 包簽署金鑰並連接兩個節點上的儲存庫,如下所示。

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

然後,您需要使用以下命令在兩個節點上安裝 DRBD 核心模組和實用程式:

# yum install -y kmod-drbd84 drbd84-utils

如果啟用了 SELinux,則需要設定策略以使 DRBD 進程免受 SELinux 控制。

# semanage permissive -a drbd_t

此外,如果您的系統運行防火牆(firewalld),則需要新增 DRBD 連接埠 7789 以允許兩個節點之間的資料同步。

對第一個節點執行以下命令:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

然後對第二個節點執行以下命令:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

第2步:準備低階存儲

現在我們已經在兩個叢集節點上安裝了 DRBD,我們必須在它們上配置大約相同大小的儲存區域。這可以是硬碟分割區(或整個實體硬碟)、軟體 RAID 裝置、 LVM邏輯磁碟區 或系統上找到的任何其他類型的區塊設備。

在本文中,我們將使用 dd 指令建立一個 2GB 的測試區塊裝置。

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

我們假設這是連接到兩個節點的第二個區塊裝置 (/dev/sdb) 上未使用的分割區 (/dev/sdb1)。

步驟 3. 配置 DRBD

DRBD 主設定檔 - /etc/drbd.conf,並且可以在目錄中找到其他配置文件 /etc/drbd.d.

要複製存儲,我們需要將必要的配置添加到文件中 /etc/drbd.d/global_common.conf,其中包含 DRBD 配置的全域和通用部分,我們需要在中定義資源 .res 文件。

讓我們在兩個節點上建立原始檔案的備份副本,然後開啟新檔案進行編輯(使用您選擇的文字編輯器)。

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

將以下行新增至兩個文件:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

儲存文件,然後關閉編輯器。

我們先看一下協定C線,DRBD支援三種不同的複製模式(即三度複製同步),分別是:

  • 協議A:異步複製協議;最常用於長距離複製場景。
  • 協定B:半同步複製協定或同步記憶體協定。
  • 協定C:通常用於短距離網路中的節點;這是迄今為止 DRBD 設定中最常用的複製協議。

這一點很重要: 複製協定的選擇會影響兩個部署因素:安全性和延遲。相比之下,吞吐量並不很大程度上取決於所選的複製協定。

第 4 步:新增資源

資源是一個總稱術語,指特定複製資料集的所有方面。我們將在文件中定義我們的資源 /etc/drbd.d/test.res.

將以下內容新增到兩個節點上的檔案中(記住將變數替換為您環境的實際值)。

注意主機名,我們需要指定網站主機名,可以使用uname指令來取得 -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

其中:

  • 在主機名稱上:嵌套配置語句適用的 on 部分。
  • test:這是新資源的名稱。
  • 裝置 /dev/drbd0:表示由DRBD管理的新虛擬區塊設備。
  • 磁碟 /dev/sdb1:這是一個區塊設備分區,是 DRBD 設備的備份設備。
  • 元磁碟:定義 DRBD 儲存其元資料的位置。內部意味著 DRBD 將其元資料儲存在與生產中的實際資料相同的實體低階設備上。
  • 地址:對應節點的IP位址和連接埠號碼。

另請注意,如果參數在兩台主機上具有相同的值,則可以直接在資源部分中指定它們。

例如,上述配置可以重組為:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

步驟 5. 初始化並啟動資源

為了與 DRBD 交互,我們將使用以下管理工具(與核心模組交互以配置和管理 DRBD 資源):

  • drbdadm:DRBD 高階管理工具。
  • drbd安裝程式:一種較低階的管理工具,用於將 DRBD 設備連接到其備份設備、配置成對的 DRBD 設備以反映其備份設備,以及驗證正在運行的 DRBD 設備的配置。
  • 德博德梅塔:元資料管理工具。

新增所有初始資源配置後,我們必須在兩個節點上呼叫資源。

# drbdadm create-md test

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
初始化元資料存儲

接下來我們需要運行它,它將資源連接到其備份設備,然後設定複製參數並將資源連接到其對等設備:

# drbdadm up test

現在如果你運行命令 lsblk,您會注意到 DRBD 設備/磁碟區 drbd0 與備份設備關聯 /dev/sdb1:

# lsblk

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
區塊設備列表

若要停用資源,請執行:

# drbdadm down test

若要檢查資源的狀態,請執行下列命令(請注意,此時磁碟的狀態是預期的) 不一致/不一致):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
檢查資源的狀態
邪惡的

步驟六:設定主資源/初始設備同步來源

在此階段,DRBD 已準備就緒。現在我們需要指定哪個節點應該用作初始設備同步的來源。

僅在一個節點上執行以下命令以開始初始完全同步:

# drbdadm primary --force test
# drbdadm status test

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
將主節點設定為初始設備
同步完成後,兩個磁碟機的狀態應為 UpToDate。

第 7 步:測試 DRBD 設定

最後,我們需要檢查 DRBD 設備是否能夠按需要工作來儲存複製的資料。請記住,我們使用了空磁碟卷,因此我們必須在設備上建立一個檔案系統並安裝它以檢查是否可以使用它來儲存複製的資料。

我們需要在開始初始完全同步的節點(具有具有主要角色的資源)上使用以下命令在設備上建立檔案系統:

# mkfs -t ext4 /dev/drbd0

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
在 Drbd 磁碟區上建立檔案系統

然後如圖所示安裝它(您可以給安裝點一個合適的名稱):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

現在在上面的安裝點中複製或建立一些文件,並製作一個長列表 ls 指令:

# cd /mnt/DRDB_PRI/
# ls -l 

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
列出 Drbd 主卷的內容

接下來,卸載設備(確保掛載未打開,卸載後更改目錄以避免錯誤)並將節點角色從主節點更改為輔助節點:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

將另一個節點(具有輔助角色的資源)設為主要節點,然後將設備附加到該節點並發出一長串安裝點。如果設定工作正常,儲存在該磁碟區上的所有檔案都應該在那裡:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

在兩台 CentOS 7 伺服器上設定 DRBD 以進行儲存複製
檢查輔助節點上執行的 DRBD 設定。

有關更多信息,請參閱管理工具幫助頁面:

# man drbdadm
# man drbdsetup
# man drbdmeta

說明: DRBD 使用手冊.

總結

DRBD 極其靈活且用途廣泛,使其成為適合向幾乎任何應用程式添加 HA 的儲存複製解決方案。在本文中,我們展示瞭如何在 CentOS 7 上安裝 DRBD 並簡要示範如何使用它進行儲存複製。請隨時使用下面的回饋表格與我們分享您的想法。

了解有關課程的更多信息。

來源: www.habr.com

添加評論