4.5. Ceph ノード向けの複数のボンディングされたインターフェイスの設定
ボンディングされたインターフェイスを使用して、複数の NIC を組み合わせ、ネットワーク接続に冗長性を追加します。Ceph ノードに十分な NIC がある場合には、各ノードに複数のボンディングされたインターフェイスを作成して冗長化機能を拡張することができます。
これにより、ノードが必要とする各ネットワーク接続にボンディングされたインターフェイスの使用が可能となります。これにより、冗長性と各ネットワーク専用の接続の両方が提供されます。
ボンディングされたインターフェイスを最も簡単に実装するには、2 つのボンディングを使用して、Ceph ノードが使用する各ストレージネットワークに 1 つずつボンディングを設定します。これらのネットワークは以下のとおりです。
- フロントエンドストレージネットワーク (
StorageNet) - Ceph クライアントはこのネットワークを使用して、対応する Ceph クラスターと対話します。
- バックエンドストレージネットワーク (
StorageMgmtNet) - Ceph クラスターはこのネットワークを使用して、クラスターの配置グループポリシーに従ってデータのバランスを取ります。詳細は、Red Hat Ceph Storage Architecture Guideの Placement Groups (PGs) を参照してください。
複数のボンディングされたインターフェイスを設定するには、新しいネットワークインターフェイステンプレートを作成する必要があります。これは、director が複数のボンディングされた NIC をデプロイするために使用できるサンプルテンプレートを提供しないからです。ただし、director は単一のボンディングされたインターフェイスをデプロイするテンプレートは提供します。このテンプレートは /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml です。このテンプレートでは、追加の NIC 用に追加のボンディングされたインターフェイスを定義することができます。
カスタムインターフェイステンプレートの作成の詳細は、Advanced Overcloud Customization の Creating Custom Interface Templates を参照してください。
以下のスニペットには、/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml ファイルで定義されている単一のボンディングされたインターフェイス用のデフォルトの定義が記載されています。
type: ovs_bridge //
name: br-bond
members:
-
type: ovs_bond //
name: bond1 //
ovs_options: {get_param: BondInterfaceOvsOptions}
members: //
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan //
device: bond1 //
vlan_id: {get_param: StorageNetworkVlanID}
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- 1
br-bondという名前の単一のブリッジは、このテンプレートで定義されているボンディングをメンバーとします。この行は、ブリッジの種別 (OVS) を定義しています。- 2
br-bondブリッジの最初のメンバーは、ボンディングされたインターフェイス自体で、bond1という名前が付いています。この行は、bond1のボンディングの種別を定義しており、これも OVS に指定されています。- 3
- デフォルトのボンディングの名前は
bond1です。 - 4
ovs_optionsのエントリーは、director が特定のボンディングモジュールディレクティブのセットを使用するように指示します。これらのディレクティブは、BondInterfaceOvsOptionsに渡されます。これもこのファイルで設定できます。ボンディングモジュールディレクティブの設定の詳細は、「ボンディングモジュールのディレクティブの設定」 を参照してください。- 5
- ボンディングの
membersセクションは、bond1でボンディングされるネットワークインターフェイスを定義します。この例では、ボンディングされるインターフェイスはnic2(プライマリーインターフェイスとして設定) とnic3を使用します。 - 6
br-bondブリッジには、他にも 2 つのメンバーが含まれています。これは、フロントエンドストレージネットワーク (StorageNetwork) とバックエンドストレージネットワーク (StorageMgmtNetwork) の両方の VLAN です。- 7
deviceパラメーターは、VLAN が使用しなければならないデバイスを定義します。この例では、両方の VLAN がボンディングされたインターフェイスbond1を使用します。
NIC を少なくとも 2 つ追加すると、ブリッジとボンディングされたインターフェイスをもう 1 つ定義できます。次に、VLAN の 1 つを新しいボンディングされたインターフェイスに移動できます。これにより、両方のストレージネットワーク接続のスループットと信頼性が向上します。
/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml ファイルをこの目的でカスタマイズする場合には、Red Hat では、デフォルトの OVS (type: ovs_bond) の代わりに Linux ボンディング (type: linux_bond) を使用することを推奨しています。このボンディングの種別は、エンタープライズレベルの実稼働デプロイメントにより適しています。
以下の編集済みスニペットは、bond2 という名前の新しい Linux ボンディングをメンバーとする追加の OVS ブリッジ (br-bond2) を定義します。bond2 インターフェイスは、2 つの追加の NIC (nic4 と nic5) を使用し、バックエンドストレージネットワークトラフィック専用に使用されます。
type: ovs_bridge
name: br-bond
members:
-
type: linux_bond
name: bond1
bonding_options: {get_param: BondInterfaceOvsOptions} //
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: ovs_bridge
name: br-bond2
members:
-
type: linux_bond
name: bond2
bonding_options: {get_param: BondInterfaceOvsOptions}
members:
-
type: interface
name: nic4
primary: true
-
type: interface
name: nic5
-
type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- 1
bond1およびbond2は両方とも (OVS ではなく) Linux ボンディングであるため、ovs_optionsの代わりにbonding_optionsを使用してボンディングディレクティブを設定します。詳細は、「ボンディングモジュールのディレクティブの設定」 を参照してください。
このカスタマイズされたテンプレートの完全な内容は、付録B カスタムインターフェイステンプレートの例: 複数のボンディングされたインターフェイスを参照してください。
4.5.1. ボンディングモジュールのディレクティブの設定 リンクのコピーリンクがクリップボードにコピーされました!
ボンディングされたインターフェイスを追加および設定したら、BondInterfaceOvsOptions パラメーターを使用して各ボンディングされたインターフェイスが使用するディレクティブを設定します。この情報は、/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml ファイルの parameters: セクションにあります。以下のスニペットには、このパラメーターのデフォルトの定義 (空欄) を示しています。
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set
things like lacp=active and/or bond_mode=balance-slb
using this option.
type: string
default: の行に必要なオプションを定義します。たとえば、802.3ad (モード 4) と LACP レート 1 (fast) を使用するには、'mode=4 lacp_rate=1' を以下のように設定します。
BondInterfaceOvsOptions:
default: 'mode=4 lacp_rate=1'
description: The bonding_options string for the bond interface. Set
things like lacp=active and/or bond_mode=balance-slb
using this option.
type: string
サポートされるその他のボンディングオプションの詳細は、Advanced Overcloud Optimization の Open vSwitch Bonding Options を参照してください。カスタマイズした /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml テンプレートの完全な内容は、付録B カスタムインターフェイステンプレートの例: 複数のボンディングされたインターフェイスを参照してください。