Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
4.5. Ceph ノードごとに複数のボンディングされたインターフェイスを設定する方法
ボンディングされたインターフェイス を使用して複数の NIC を組み合わせ、ネットワーク接続に冗長性を持たせることができます。Ceph ノードに十分な NIC がある場合には、ノードごとに 複数のボンディングされたインターフェイス を作成すると、これをさらに一歩進めることができます。
これにより、ノードが必要とするそれぞれのネットワーク接続にボンディングされたインターフェイスを使用できます。これにより、冗長性と各ネットワーク専用の接続の両方が提供されます。
この設定を最も簡単に実装するには、2 つのボンディングを使用して、Ceph ノードが使用する各ストレージネットワークに 1 つずつボンディングを設定します。Ceph ノードが使用するストレージネットワークは以下のとおりです。
- フロントエンドストレージネットワーク (
StorageNet
) - Ceph クライアントは、このネットワークを使用して Ceph クラスターと対話します。
- バックエンドストレージネットワーク (
StorageMgmtNet
) - Ceph クラスターは、このネットワークを使用して、クラスターの placement group ポリシーに従ってデータのバランスを取ります。詳細は、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 用のボンディングされたインターフェイスを定義して追加することができます。
カスタムインターフェイステンプレートの作成に関する詳細は、オーバークラウドの高度なカスタマイズの カスタムネットワークインターフェイステンプレート を参照してください。
以下のスニペットには、/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml
で定義されている単一のボンディングされたインターフェイス用のデフォルトの定義が記載されています。
type: ovs_bridge // 1 name: br-bond members: - type: ovs_bond // 2 name: bond1 // 3 ovs_options: {get_param: BondInterfaceOvsOptions} 4 members: // 5 - type: interface name: nic2 primary: true - type: interface name: nic3 - type: vlan // 6 device: bond1 // 7 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
をこの目的でカスタマイズする場合には、デフォルトの 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} // 1
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
サポートされるその他のボンディングオプションに関する詳細は、オーバークラウドの高度なカスタマイズの Open vSwitch ボンディングのオプション を参照してください。カスタマイズした /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml
テンプレートの完全な内容は、付録B カスタムインターフェイステンプレートの例: 複数のボンディングされたインターフェイスを参照してください。