3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クリスマスなのにスイッチでソニックを遊んでみた!

Last updated at Posted at 2022-12-25

注意事項

本記事は、個人の見解であり、所属組織や団体を代表するものではありません。
また、本記事の情報の内容について、一切の責任を負いません。ご利用は、自己責任でお願いします。

Introduction

 今回は、SONiC Advent Calendar 2022の最終日の記事です。12月25日で、世間はクリスマスであるのにも関わらず、一人で家に籠って、Nintendo Switchでもなく、White Box Switchを触っています。(クリスマスに、クルシミマスというギャグです。

About Software for Open Networking in the Cloud(SONiC)

 Software for Open Networking in the Cloud (SONiC)は、2016年に、Microsoftがネットワークベンダーたちと共同してOpen Compute Project (OCP) Summitで発表した、完全なOpen Source Softwareです[1]。そして、SONiCは、データセンタのネットワーキングの必要とする機能を基にしたModular Architectureであり、Frameworkを提供します。また、Switch Abstraction Interface (SAI)は、2015年に、OCP Summitで発表しており、SAIによりSONiCは、様々なSwitching Platformで動作できるようなっています。現在では、Linux Foundationに移動して開発を続けています[2]。主な機能は、BGPやRDMAがあり、Full-suiteで提供します。

Architecture, Configuration, and Command Line in SONiC

 SONiCは、集中管理でスケーラブルなアーキテクチャで構成しています。また、各モジュールは、コンテナでデプロイしています[2]。ConfigurationはこちらとCommand Lineはこちらにあります。

SONiC_Architecture.png

White Box Switch

 ここからは、実際にHardwareについて述べます。

なぜ、入手できたのか

 2021年頃に、32x100GbEのWhite Box Switchが、海外の中古市場では$1500程度で取引されるようになっていました。理由は、Switchに搭載されるIntel Atom C2000というCPUが'AVR54 bug'というブートしなくなるバグ[3]があり、中古市場に多く出品されたからです。この中で、注目されていたのが'Celestica Seastone DX010'というWhite Box Switchです。実際のバグの発生確率は10%以下であるという報告[4]があります。また、このバグは、新しいAtom C2000シリーズでは、修正されています。今回は、Celestica Seastone DX010(DX010)を使います。

Celestica Seastone DX010(DX010)

 SONiCがサポートしているプラットフォームはこちらにあります。こちらの中に、DX010があり、Switch ASICは、Tomahawkになります。

S.No Vendor Platform ASIC Vendor Switch ASIC Port Configuration Image
36  Celestica DX010 Broadcom Tomahawk 32x100G SONiC-ONIE-Broadcom

DX010の大きさ

 DX010の物理サイズは、

  • Height: 43.8 mm (1.73”)
  • Width: 442 mm (17.3”)
  • Depth: 521 mm (20.5”)

ですので、クリスマスプレゼントで欲しい人は、高さが5cmかつ幅が45cmかつ奥行きが55cmの靴下が必要です。

家庭によく置いていあるSwitchやStarlinkのアンテナとの比較画像は以下です。Starlinkのアンテナ大きいです...
20221225_SONiC_Overview.jpg

また、ピッツァボックスとの比較画像は以下です。大きさも重さも缶ビール箱級です...
(ピッツァはスタッフが美味しく頂きました。クリスマスで一人で寂しくLサイズのピッツァを食べるとは思わなかったです:cry:
20221225_SONiC_PizzaBox.jpg

また、内部は以下です。詳細はこちらを見るとわかりやすいです。

  • Front部分、AirはRearからFrontです。
    20221226_SONiC_Front.jpg

  • Top部分、密度は高いです。
    20221226_SONiC_Top.jpg

  • ASIC部分、二階層構造になっています。
    20221226_SONiC_ASIC.jpg

  • CPU、Memory、mSATA部分

    • CPU: Atom C2000が隠れてます。x86 processerです。
    • Memory: DDR3 SODIMM 4GB
    • mSATA: 16GB
      20221226_SONiC_CPU.jpg

Installing SONiC

 ここからは、DX010にSONiCをインストールするための内容です。SONiCのユーザマニュアルは、こちらです。

SONiC Image

 基本的には、こちらのSupported Devices and Platformsから、プラットフォームにあったLatest master imageを探してダウンロードして用意します。
また、SONiCは、Azureが毎日イメージを作成するPipelinesを提供しており、プラットフォームとブランチを選択すると、ビルドが成功したのか失敗したのか、出力ログがどうなっているのかわかります。

 今回は、DX010なので、プラットフォームはBroadcomでmasterを選択します。

20221225_SONiC_Image01.png

20221225_SONiC_Image02.png

Artifactsでは、Nameは'sonic-buildimage.broadcom'を選択します。

20221225_SONiC_Image03.png

Install SONiC ONIE Image

 Open Network Install Environment (ONIE)は、White Box Switchに、Network Operating Systemsをインストールするための、Open Source Softwareです。ONIEについてこちらにUser Guideがあります。

 今回は、ONIEにより、USBでSONiCをインストールします。ダウンロードした'sonic-broadcom.bin'を'onie-installer'に名前を変更してUSBに保存します。保存が終わりましたら、USBをDX010に繋げます。また、DX010にConsole-USBケーブルを繋げます。Screenコマンドで、ボーレートを115200に設定します。他のWhite Box Switchは、ボーレートが9600もあります。手順は、Quick-Startを参照してください。

初めに、'ONIE'を選択し'ONIE: Uninstall OS'を選択して、古いNOS(SONiC)を削除します。

Screenshot 2022-12-26 at 5.14.03.png

このような感じで削除が進みます。

Screenshot 2022-12-26 at 5.19.18.png

リブートします。
'ONIE: Install OS'を選択すると、SONiCのインストールが開始します。

Screenshot 2022-12-26 at 5.52.25.png

checksumとArchiveがOKになり、インストーラーが進みます。

Screenshot 2022-12-26 at 5.54.36.png

そして、無事インストールが完了すると、こちらの画面になります。

Screenshot 2022-12-26 at 6.00.02.png

次に、sonic loginに進みます。
UserとPasswordはこちらを確認してください。

Screenshot 2022-12-26 at 6.04.14.png

Show version

Screenshot 2022-12-26 at 6.12.09.png

これで、最新のSONiCが動作しました。
また、セキュリティのためパスワードを変更してください。

気になる消費電力

電力計測計だと、ブートとアイドル状態では200W以下でした。

最後に

 今回は、White Box Switchを使ってSONiCを動作するところまで行いました。SONiCの機能がどこまで実装されているのかは、Sonic Roadmap Planningを確認する必要があります。自分で機能を追加して、イメージをビルドをすることもできますが、コンパイルとデバックに時間がかかります。また、SAIがどこまで機能追加しているのかも確認する必要があります。個人で機能を追加しないならPipelinesから、イメージをダウンロードすることをおすすめします。SONiCはvs版(VMで動作するイメージです)もありますので、簡単に試すことができます。私は、2xDX010を$1000で輸入費込みで購入していました。現在は、円安の影響や在庫などの影響でもっと高騰していると思いますが、中古サーバくらいの金額で、SONiCが遊べます。皆さんも、ぜひとお試しくださいと言おうとしましたが、隣人などと騒音問題になる可能性があるので、オススメはしません(笑

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?