Skip to main content
How to enable StorageGRID in your environment
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

安裝 StorageGRID 的必要條件

貢獻者

瞭解部署 StorageGRID 所需的運算、儲存、網路、泊塢視窗和節點需求。

運算需求

下表列出每種 StorageGRID 節點類型支援的最低資源需求。這些是 StorageGRID 節點所需的最低資源。

節點類型 CPU 核心 RAM

管理

8.

24GB

儲存設備

8.

24GB

閘道

8.

24GB

此外、每個實體 Docker 主機至少應分配 16 GB 的 RAM 、以便正常運作。例如、若要將表格中所述的任何兩項服務一起託管在一個實體 Docker 主機上、您可以進行下列計算:

24 + 24 + 16 = 64GB RAM 和 8 + 8 = 16 核心

由於許多現代伺服器超出這些需求、我們將六個服務( StorageGRID 容器)合併到三個實體伺服器上。

網路需求

StorageGRID 流量的三種類型包括:

  • * 網格流量(必填)。 *在網格中所有節點之間傳輸的內部StorageGRID 不完整流量。

  • * 管理流量(選用)。 *用於系統管理與維護的流量。

  • * 用戶端流量(選用)。 *在外部用戶端應用程式和網格之間傳輸的流量、包括S3和Swift用戶端的所有物件儲存要求。

您最多可以設定三個網路、以搭配 StorageGRID 系統使用。每種網路類型都必須位於不重疊的個別子網路上。如果所有節點都位於同一子網路、則不需要閘道位址。

在此評估中、我們會在兩個包含網格和用戶端流量的網路上部署。您可以稍後新增管理網路、以提供額外的功能。

務必將網路一致地對應到所有主機的介面。例如、如果每個節點上有兩個介面、分別是 ens192 和 ens224 、則所有主機上的所有介面都應該對應到相同的網路或 VLAN 。在此安裝中、安裝程式會將這些資料對應至 Docker 容器、將其對應為 eth0@if2 和 eth2@if3 (因為容器內的迴路是 if1 )、因此一致的模型非常重要。

Docker 網路注意事項

StorageGRID 使用網路的方式與某些 Docker 容器實作方式不同。不使用 Docker (或 Kubernetes 或 swarm )提供的網路。StorageGRID 實際上會將容器當成 --net=none 、這樣 Docker 就不會對容器進行任何網路連線。當容器被 StorageGRID 服務所衍生出來之後、就會從節點組態檔案中定義的介面建立新的 Macvlan 裝置。該裝置有新的 MAC 位址、可作為獨立的網路裝置、從實體介面接收封包。然後將 Macvlan 裝置移至 Container 命名空間、並重新命名為容器內的 eth0 、 eth1 或 eth2 之一。此時、主機作業系統中不再顯示網路裝置。在我們的範例中、網格網路裝置是 Docker 容器內的 eth0 、用戶端網路是 eth2 。如果我們有管理網路、則該裝置會是容器中的 eth1 。

註 容器網路裝置的新 MAC 位址可能需要在某些網路和虛擬環境中啟用雜亂模式。此模式可讓實體裝置接收和傳送不同於已知實體 MAC 位址的 MAC 位址封包。 如果在 VMware vSphere 中執行、您必須接受雜亂模式、 MAC 位址變更、以及在執行 RHEL 時、用於處理 StorageGRID 流量的連接埠群組中的偽造傳輸。大多數情況下、 Ubuntu 或 Debian 都能正常運作、無需進行這些變更。

儲存需求

每個節點都需要 SAN 型或本機磁碟裝置、大小如下表所示。

註 表格中的數字是針對每種 StorageGRID 服務類型、而非整個網格或每個實體主機。根據部署選項、我們將在本文件稍後的中、計算每部實體主機的數量 "實體主機配置與需求"。 安裝程式會在 StorageGRID 容器本身建立標有星號的路徑或檔案系統。管理員不需要手動設定或建立檔案系統、但主機需要區塊裝置才能滿足這些需求。換句話說、區塊裝置應該使用命令來顯示 lsblk 、但不要在主機作業系統中格式化或掛載。
節點類型 LUN 用途 LUN數量 LUN 的最小大小 需要手動檔案系統 建議的節點組態項目

全部

管理節點系統空間
/var/local ( SSD 在此提供協助)

每個管理節點各一個

90GB

BLOCK_DEVICE_VAR_LOCAL = /dev/mapper/ADM-VAR-LOCAL

所有節點

Docker 儲存池位於
/var/lib/docker for container pool

每個主機(實體或 VM )各一個

每個容器 100 GB

是– etx4

NA –格式化並以主機檔案系統掛載(未對應至容器)

管理

管理節點稽核記錄(管理容器中的系統資料)
/var/local/audit/export

每個管理節點各一個

200GB

BLOCK_DEVICE_AUDIT_LOGS =/dev/mapper/ADM-OS

管理

管理節點表(管理容器中的系統資料)
/var/local/mysql_ibdata

每個管理節點各一個

200GB

BLOCK_DEVICE_TABLES = /dev/mapper/ADM-MySQL

儲存節點

物件儲存(區塊裝置) /var/local/rangedb0 ( SSD 在此提供協助) /var/local/rangedb1 /var/local/rangedb2

每個儲存容器三個

4000GB

BLOCK_DEVICE_RANGEDB_000 = /dev/mapper/SN-Db00
BLOCK_DEVICE_RANGEDB_001 = /dev/mapper/SN-Db01
BLOCK_DEVICE_RANGEDB_002 = /dev/mapper/SN-Db02

在此範例中、下表所示的磁碟大小是每種容器類型所需的。本文件稍後的、中說明每部實體主機的需求 "實體主機配置與需求"

每種容器類型的磁碟大小

管理容器

名稱 尺寸( GiB )

Docker 儲存

100 (每個容器)

ADM-OS

90

ADM-Audit

200

ADM-MySQL

200

儲存容器

名稱 尺寸( GiB )

Docker 儲存

100 (每個容器)

SN-OS

90

Rangedb-0

4096

Rangedb-1

4096

Rangedb-2

4096

閘道容器

名稱 尺寸( GiB )

Docker 儲存

100 (每個容器)

/var/local

90

實體主機配置與需求

透過結合上表所示的運算和網路需求、您可以獲得一組基本的硬體、以安裝三部具有 16 核心、 64GB RAM 和兩個網路介面的實體(或虛擬)伺服器。如果需要較高的處理量、可以在網格或用戶端網路上連結兩個或更多介面、並在節點組態檔案中使用 VLAN 標記介面、例如 bond0.520 。如果您預期的工作負載會更密集、那麼主機和容器的記憶體就會更多。

如下圖所示、這些伺服器將裝載六個 Docker 容器、每個主機兩個。RAM 的計算方式為每個容器提供 24GB 、主機作業系統本身則提供 16GB 。

三台主機的範例配置。

每個實體主機(或 VM )所需的總 RAM 為 24 x 2 + 16 = 64GB 。下表列出主機 1 、 2 和 3 所需的磁碟儲存設備。

主機 1 尺寸( GiB )
  • Docker Store*

/var/lib/docker (檔案系統)

200 ( 100 x 2 )

  • 管理容器 *

BLOCK_DEVICE_VAR_LOCAL

90

BLOCK_DEVICE_AUDIT_LOGS

200

BLOCK_DEVICE_TABLES

200

  • 儲存容器 *

SN-OS
/var/local (裝置)

90

Rangedb-0 (裝置)

4096

Rangedb-1 (裝置)

4096

Rangedb-2 (裝置)

主機 2. 尺寸( GiB )
  • Docker Store*

/var/lib/docker (共享)

200 ( 100 x 2 )

  • 閘道容器 *

GW-OS */var/local

100

  • 儲存容器 *

*/var/local

100

Rangedb-0

4096

Rangedb-1

4096

Rangedb-2

主機 3 尺寸( GiB )
  • Docker Store*

/var/lib/docker (共享)

200 ( 100 x 2 )

  • 閘道容器 *

*/var/local

100

  • 儲存容器 *

*/var/local

100

Rangedb-0

4096

Rangedb-1

4096

Rangedb-2

Docker 儲存區的計算方式是:每個 /var/local (每個容器)允許 100GB x 兩個容器 = 200GB 。

準備節點

若要準備 StorageGRID 的初始安裝、請先安裝 RHEL 9.2 版並啟用 SSH 。根據最佳實務做法設定網路介面、網路時間傳輸協定( NTP )、 DNS 和主機名稱。您至少需要一個已啟用網格網路的網路介面、另一個則需要用戶端網路。如果您使用的是具有 VLAN 標記的介面、請依照下列範例進行設定。否則、簡單的標準網路介面組態就足夠了。

如果您需要在網格網路介面上使用 VLAN 標記、您的組態應該有兩個檔案 /etc/sysconfig/network-scripts/ 、格式如下:

# cat /etc/sysconfig/network-scripts/ifcfg-enp67s0
# This is the parent physical device
TYPE=Ethernet
BOOTPROTO=none
DEVICE=enp67s0
ONBOOT=yes
# cat /etc/sysconfig/network-scripts/ifcfg-enp67s0.520
# The actual device that will be used by the storage node file
DEVICE=enp67s0.520
BOOTPROTO=none
NAME=enp67s0.520
IPADDR=10.10.200.31
PREFIX=24
VLAN=yes
ONBOOT=yes

本範例假設您的網格網路實體網路裝置是 enp67s0 。它也可以是綁定的設備,例如 bond0 。無論您是使用結合或標準網路介面、如果網路連接埠沒有預設 VLAN 、或是預設 VLAN 沒有與網格網路相關聯、則必須在節點組態檔案中使用 VLAN 標記介面。StorageGRID 容器本身不會取消標記乙太網路框架、因此必須由父作業系統處理。

iSCSI 的選用儲存設備設定

如果您不使用 iSCSI 儲存設備、則必須確保 host1 、 host2 和 host3 包含大小足以滿足其需求的區塊裝置。請參閱 "每種容器類型的磁碟大小" 瞭解 host1 、 host2 和 host3 儲存需求。

若要使用 iSCSI 設定儲存設備、請完成下列步驟:

步驟
  1. 如果您使用外部 iSCSI 儲存設備、例如 NetApp E 系列或 NetApp ONTAP ® 資料管理軟體、請安裝下列套件:

    sudo yum install iscsi-initiator-utils
    sudo yum install device-mapper-multipath
  2. 在每個主機上找到啟動器 ID 。

    # cat /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2006-04.com.example.node1
  3. 使用步驟 2 中的啟動器名稱、將儲存裝置上的 LUN (表中所示的數量和大小)對應 "儲存需求" 至每個儲存節點。

  4. 使用探索新建立的 LUN iscsiadm 並登入它們。

    # iscsiadm -m discovery -t st -p target-ip-address
    # iscsiadm -m node -T iqn.2006-04.com.example:3260 -l
    Logging in to [iface: default, target: iqn.2006-04.com.example:3260, portal: 10.64.24.179,3260] (multiple)
    Login to [iface: default, target: iqn.2006-04.com.example:3260, portal: 10.64.24.179,3260] successful.
    註 如需詳細資訊、請參閱 "建立 iSCSI 啟動器" Red Hat 客戶入口網站上的。
  5. 若要顯示多重路徑裝置及其相關的 LUN WWID 、請執行下列命令:

    # multipath -ll

    如果您不使用 iSCSI 搭配多重路徑裝置、只要以唯一的路徑名稱掛載裝置、即可持續進行裝置變更和重新開機。

    /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:1:0
    提示 如果移除或新增裝置、只要使用 /dev/sdx 裝置名稱可能會在稍後發生問題。 如果您使用多重路徑裝置、請修改 /etc/multipath.conf 檔案以使用別名、如下所示。
    註 視配置而定、這些裝置可能出現在所有節點上、也可能不存在。
    multipaths {
    multipath {
    wwid 36d039ea00005f06a000003c45fa8f3dc
    alias Docker-Store
    }
    multipath {
    wwid 36d039ea00006891b000004025fa8f597
    alias Adm-Audit
    }
    multipath {
    wwid 36d039ea00005f06a000003c65fa8f3f0
    alias Adm-MySQL
    }
    multipath {
    wwid 36d039ea00006891b000004015fa8f58c
    alias Adm-OS
    }
    multipath {
    wwid 36d039ea00005f06a000003c55fa8f3e4
    alias SN-OS
    }
    multipath {
    wwid 36d039ea00006891b000004035fa8f5a2
    alias SN-Db00
    }
    multipath {
    wwid 36d039ea00005f06a000003c75fa8f3fc
    alias SN-Db01
    }
    multipath {
        wwid 36d039ea00006891b000004045fa8f5af
    alias SN-Db02
    }
    multipath {
    wwid 36d039ea00005f06a000003c85fa8f40a
    alias GW-OS
    }
    }

在主機作業系統中安裝 Docker 之前、請先格式化並掛載 LUN 或磁碟備份 /var/lib/docker。其他 LUN 是在節點組態檔中定義、直接由 StorageGRID 容器使用。也就是說、它們不會出現在主機作業系統中、它們會出現在容器本身、而這些檔案系統則由安裝程式處理。

如果您使用的是 iSCSI 備份 LUN 、請在您的 fstab 檔案中放入類似以下的內容。如前所述、其他 LUN 不需要掛載於主機作業系統中、但必須顯示為可用的區塊裝置。

/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:1:0 /var/lib/docker ext4 defaults 0 0

準備安裝 Docker

若要準備 Docker 安裝、請完成下列步驟:

步驟
  1. 在所有三台主機上的 Docker 儲存磁碟區上建立檔案系統。

    # sudo mkfs.ext4 /dev/sd?

    如果您使用的 iSCSI 設備具有多路徑功能,請使用 /dev/mapper/Docker-Store

  2. 建立 Docker 儲存磁碟區裝載點:

    # sudo mkdir -p /var/lib/docker
  3. 將泊塢視窗儲存容量裝置的類似項目新增至 /etc/fstab

    /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:1:0 /var/lib/docker ext4 defaults 0 0

    只有在使用 iSCSI 裝置時、才建議使用下列 _netdev 選項。如果您不需要使用本機區塊裝置 _netdev defaults 、建議您使用。

    /dev/mapper/Docker-Store /var/lib/docker ext4 _netdev 0 0
  4. 掛載新的檔案系統並檢視磁碟使用率。

    # sudo mount /var/lib/docker
    [root@host1]# df -h | grep docker
    /dev/sdb 200G 33M 200G 1% /var/lib/docker
  5. 基於效能考量、請關閉交換並停用。

    $ sudo swapoff --all
  6. 若要保留設定、請從 /etc/fstab 移除所有交換項目、例如:

    /dev/mapper/rhel-swap swap defaults 0 0
    註 如果無法完全停用交換、可能會嚴重降低效能。
  7. 對節點執行測試重新開機、以確保該 /var/lib/docker 磁碟區持續存在、且所有磁碟裝置都會恢復正常。