全文カタログナビゲーション
0. 序文
Longhorn は、Rancher ストアに付属する分散ブロック ストレージ サービスで、展開と構成が簡単で、美しく使いやすい UI を提供します。
Longhorn のデータ ボリューム バックアップ機能には、s3 や nfs などの外部ストレージが必要です。この記事では、nfs サービスをバックアップ ストレージ サービスとして使用します。
1. NFSのインストール構成
1.1 nfs と rpcbind をインストールする
-
yum を直接ダウンロードしてインストールするための外部ネットワーク環境があります
yum -y install nfs-utils rpcbind
-
外部ネットワーク環境を使用しないオフライン パッケージのダウンロード インストール
repotrack nfs-utils repotrack rpcbind
-
サービスを開始する
systemctl start nfs && systemctl enable nfs systemctl start rpcbind && systemctl enable rpcbind
1.2 共有ディレクトリを作成する
-
ディレクトリを作成して権限を割り当てる
mkdir -p /home/nfs && chmod -R 777 /home/nfs
1.3 アクセス権の構成
-
指定したホストへのアクセスを制限する
# 单个主机地址 echo "/home/nfs 192.168.1.101(rw,sync,no_root_squash)" >> /etc/exports # 多个主机地址 echo "/home/nfs 192.168.1.101(rw,sync,no_root_squash) 192.168.1.102(rw)" >> /etc/exports
-
ホストの IP 範囲へのアクセスを制限する
# 192.168.1 网段可以访问 echo "/home/nfs 192.168.1.*(rw,sync,no_root_squash)" >> /etc/exports
-
無制限のアクセス (安全ではない)
echo "/home/nfs *(rw)" >> /etc/exports
-
負荷設定
exportfs -r
1.4showmount -e
脆弱性スキャンを妨げる制限事項
-
構成
/etc/hosts.allow
# 此处配置允许挂载及 showmount -e 查看共享目录的主机 mountd:192.168.1.101 mountd:192.168.1.102 rpcbind:192.168.1.101 rpcbind:192.168.1.102
-
構成
/etc/hosts.deny
# 此处拦截除 allow 中配置的主机以外的所有 mountd:all rpcbind:all
-
構成が成功したことを確認する
# 从 192.168.1.103 查看,无权访问 [root@103 ~]# showmount -e 192.168.1.101 clnt_create: RPC: Port mapper failure - Authentication error
# 从 192.168。1.102 查看,有权访问 [root@102 ~]# showmount -e 192.168.1.101 Export list for 192.168.1.101: /home/nfs-data 192.168.1.101,192.168.1.102
1.5 ファイアウォールの設定
nfs サービスのいくつかのポートはランダムであり、ファイアウォールで指定できないため、構成ファイルを変更して関連するポートを指定する必要があります。
-
/etc/sysconfig/nfs
以下をファイルに追加します# custom add RQUOTAD_PORT=1001 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892
-
ファイアウォールルールを構成する
firewall-cmd --permanent --add-port=111/tcp firewall-cmd --permanent --add-port=111/udp firewall-cmd --permanent --add-port=2049/tcp firewall-cmd --permanent --add-port=2049/udp firewall-cmd --permanent --add-port=32803/tcp firewall-cmd --permanent --add-port=32803/udp firewall-cmd --permanent --add-port=32769/tcp firewall-cmd --permanent --add-port=32769/udp firewall-cmd --permanent --add-port=1001/tcp firewall-cmd --permanent --add-port=1001/udp firewall-cmd --permanent --add-port=892/tcp firewall-cmd --permanent --add-port=892/udp firewall-cmd --reload
より高いセキュリティが必要な場合は、上記のポートがどの IP または IP 範囲向けに開発されているかを指定できます。
2. Longhorn バックアップ構成
2.1 Longhorn UI での設定
クラスター ダッシュボードで、Longhorn
管理インターフェイスに移動します。
【設定】-【一般】を開く
Backup Target
アイテムを見つけてnfs
パスを入力し、ページの下部にある保存ボタンをクリックします。
nfs://192.168.1.101:/home/nfs-data
3. データボリュームのバックアップおよびリカバリ操作
3.1 サンプル ワークロードの作成
postgres データベース サービスをテスト オブジェクトとして取得します
- ステートフル ワークロードをデプロイし、PVC データ ボリュームを作成する
3.2 テストデータの作成
navicat を使用してデータベース サービスに接続し、テスト データを作成します
demo
データベースとテーブルを作成しuser
、テーブルにテスト データを挿入します。
3.3 データボリュームのバックアップの作成
Longhorn UI の [ボリューム] メニューで、作成したデータ ボリュームを選択し、メニュー バーの [バックアップの作成] ボタン (バックアップの作成) をクリックし、必要に応じてラベル (ラベル) を追加します。
作成が完了すると、「バックアップ(Backup)」メニューで今回作成したバックアップ情報が確認できます。
3.4 データベースデータの削除
Navicat で作成したばかりのデータベースを削除しdemo
、データベース サービスを停止します。
3.5 データボリュームの復元
- ボリュームリスト内の現在のデータボリュームを削除します
- 「バックアップ」リストでバックアップしたばかりのデータボリュームを見つけ、メニューの「復元」をクリックします。
- 必要事項を入力し、以前のPVC名を使用する(Use Previous Name)にチェックを入れ、その他は入力不要です
- ボリューム (ボリューム) リストを再度開くと、削除したばかりのボリュームが戻ってきており、PVC を再作成する必要があることがわかります。
デフォルトでは、以前の PVC 名が使用されるため、ワークロードの構成を変更する必要はありません。
作成が成功したら、データベースサービスを再度起動し、データが復元されたことを確認します。