sdplane リリース
ダウンロード
Ubuntu 24.04 用の Debian パッケージです。libsdplane と sdplane の両方が必要です。
- libsdplane 0.3.37-121 [deb]
- sdplane 0.1.3-943 [deb]
- 設定ファイル(スイッチ構成の最小設定) [sdplane-switch.conf]
前提条件
- CPU: x86-64-v2 以降(amd64)
- OS: Ubuntu 24.04 LTS
- NIC: DPDK 対応 NIC。大抵の NIC は対応しており、Intel や NVIDIA(Mellanox)の NIC も対応しています。その他の NIC は DPDK の対応 NIC 一覧を確認してください。設定で指定した NIC は sdplane が専有するので、管理用の Linux インターフェースは指定しないでください。
- メモリ: 16GB 以上
- IOMMU: BIOS で VT-d / AMD-Vi を有効にしてください(vfio-pci ドライバーに必要です)。
インストールと前処理
-
パッケージをインストールします。sdplane.service が自動で有効になります。
sudo apt install ./libsdplane_0.3.37-121~ubuntu24.04_amd64.deb \ ./sdplane_0.1.3-943~ubuntu24.04_amd64.deb依存パッケージとして、DPDK 23.11 のライブラリ(librte-*)、liburcu、libpcap と、推奨パッケージの dpdk(NIC ドライバーや dpdk-devbind.py などのツール)が自動でインストールされます。
-
ヒュージページを設定します。
/etc/default/grubに以下を追加し、grub を更新します。GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=8"sudo update-grub -
起動時に vfio-pci ドライバーを読み込むようにします。
sudo cp /etc/sdplane/vfio-pci.conf /etc/modules-load.d/ -
スイッチ構成の最小設定
sdplane-switch.confをダウンロードし、/etc/sdplane/sdplane.confとして置きます。set deviceの PCI アドレスを環境に合わせて書き換えます。PCI アドレスはlspciで確認できます。wget https://www.yasuhironet.net/dist/sdplane-switch.conf sudo mv sdplane-switch.conf /etc/sdplane/sdplane.conf sudo vi /etc/sdplane/sdplane.conf⚠️ 誤って NVMe SSD の PCI アドレスを指定すると、システムが起動しなくなります。PCI アドレスは十分に確認してください。
-
再起動すると sdplane が起動します。CLI には telnet で接続します。
sudo reboot telnet localhost 9882⚠️ CLI には認証がありません。9882/tcp は localhost からのみ接続できるようにしてください。
最小構成スイッチの設定
sdplane-switch.conf は、sdplane を4ポートのスイッチとして動かす最小の設定です。
PCI アドレス 01:00.0、01:00.1、02:00.0、03:00.0 に接続されている4つの NIC を vswitch 10 に接続し、4ポートのスイッチとして動作します。
また、vswitch 10 には port-1-00-0 と capture-1-00-0 という2つの tap インターフェースが作成されます。Linux からは、port-1-00-0 で DHCP によりアドレスを取得して ssh を提供したり、capture-1-00-0 で tcpdump を実行してパケットを監視したりできます。
よく使うコマンド
telnet で CLI に接続して実行します。
telnet localhost 9882
show port- 各ポートのデバイス(PCI アドレス)、リンク状態、速度、ドライバー、アップタイムを一覧表示します。
show port statistics pps- 各ポートの1秒あたりの受信・送信パケット数と、エラー数を表示します。
show thread- 各スレッドが動いている lcore、種類(lthread / dpdk)、機能、1秒あたりのループ回数を表示します。
show vswitch- vswitch の VLAN、接続されているポート、router-if と capture-if の tap インターフェースを表示します。
ドキュメンテーション
English | 日本語 | Français | 中文 | Deutsch | Italiano | 한국어 | ไทย | Español