Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SONiCインストールしてみた

5,147 views

Published on

SONiCインストールしてみた

Published in: Engineering
  • Be the first to comment

SONiCインストールしてみた

  1. 1. SONiCやってみた DMM.comラボ 渡辺憲一
  2. 2. はじめに 渡辺憲一 DMM.comラボのインフラエンジニア  ツチノコブログ読んでください  http://tsuchinoko.dmmlabs.com/ @wataken44 Azure Stackを首を長くして待ってます 今日はSONiCやってみた失敗談の話をします
  3. 3. SONiCとは Microsoft社が公開したDebianベースのネットワークOS githubで公開されている  http://azure.github.io/SONiC/ Dell S6000-ONなどのスイッチに対応 検証用のDell S6000-ONが手元にあるやってみるしか
  4. 4. 手順 Linux Kernelをbuild SONiC imageをbuild インストール
  5. 5. Linux Kernelをbuild Debian Jessie x64の環境を用意 ソースを落としてきて build (最終的には5時間くらい) $ git clone https://github.com/Azure/sonic-linux-kernel/ $ cd sonic-linux-kernel/ $ ./build.sh 必要な package は随時インストール http://tsuchinoko.dmmlabs.com/?p=3237 これで Kernel ができた
  6. 6. SONiC imageをbuild SONiC image が依存する initramfs などを build $ mkdir sonic-buildimage/deps/ $ cp sonic-linux-kernel/*.deb sonic-buildimage/deps/ $ cd sonic-buildimage $ ./get_deps.sh SONiC image をbuild (30分くらい) $ ./build_debian.sh "sonic" "$(perl -e 'print crypt("sonic", "salt"),"¥n"')" && ./build_image.sh $ ls -l acs-generic.bin -rw-r--r-- 1 watanabe-k watanabe-k 238388488 Mar 30 15:28 acs-generic.bin これで SONiC image ができた
  7. 7. インストール USBメモリに “onie-installer” という名前で image を置く $ cp acs-generic.bin <USBメモリ>/onie-installer USBメモリをスイッチに挿すと自動的に install が始まる ONIE: Starting ONIE Service Discovery ONIE: Executing installer: file://dev/sdb1/onie-installer
  8. 8. 結果 何も出てこない
  9. 9. ログ ONIE: Starting ONIE Service Discovery ONIE: Executing installer: file://dev/sdb1/onie-installer (中略) Installation finished. No error reported. (中略) machine restart (中略) Press <DEL> or <F2> to enter setup. この後、画面が真っ暗に DELやF2を押しても反応しない
  10. 10. やってしまった感
  11. 11. 行き詰まった サポートに連絡 サポート「Tera Termの設定見直してください」 わたなべ「BIOSでました(///▽///)」 サポート「ONIE再インストールしましょう」 後から考えるとUSBキーボード使えばよかったのでは…… ともかくこれでONIE入れなおせる!
  12. 12. ONIE imageをbuild バイナリが配られてるわけではなかった…… 手順 https://github.com/opencomputeproject/onie/wiki/Building-ONIE これで recovery 用の image ができた onie-recovery-x86_64-dell_s6000_s1220-r0.iso
  13. 13. ONIE install USBメモリに焼いて $ dd if=onie-recovery-x86_64-dell_s6000_s1220-r0.iso of=/dev/sdb bs=4096 BIOSメニューでUSBメモリから起動 普通のパソコンと同じ これで何度でもやりなおせるようになった
  14. 14. Linux Kernelをbuild (再) 実は Dockerfile で環境提供されてた https://github.com/Azure/sonic-build-tools/blob/master/sonic-slave/Dockerfile ソースを落としてきて build (5時間くらい) $ git clone https://github.com/Azure/sonic-linux-kernel/ $ cd sonic-linux-kernel/ $ ./build.sh これで Kernel ができた SONiC image 作るところ・インストールは省略
  15. 15. 結果 やっぱり何も出てこない
  16. 16. 調査 さっき作ったUSBのONIE installerでrescueモードで起動 ONIE-RECOVERY:/ # cat /mnt/onie-boot/grub/grub.cfg # begin: serial console config serial --port=0x3f8 --speed=9600 --word=8 --parity=no --stop=1 terminal_input serial terminal_output serial Linux の grub でシリアルが 9600baud になってる ⇔ Dell S6000-ON はデフォルト 115200baud でこれを利用 していた
  17. 17. 文鎮ではなかった Tera Termの設定見直したら boot してた(///▽///) sonic@acs:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether ec:f4:bb:fd:fe:91 brd ff:ff:ff:ff:ff:ff
  18. 18. 俺たちの戦いはこれからだ Tool類入れられてない 5/19 にも commit があるので追従したい ここらへんに興味のある方、連絡先を交換させてください

×