openstack
cyborg

OpenStack SydneyでLT発表されたCyborgのまとめ

 はじめに

  • OpenStack SydneyでLT発表された cyborg projectについてピックアップ
  • 実際にインストールした(動くとは言っていない)
  • ざっくりと書いているため間違いなどございましたら,お気軽にご連絡ください

OpenStack Cyborg とは

Youtubeリンク

元々,LT発表予定の方が来られなかったので代理の方が発表されていた
質問はIRCへ,とアナウンス

FPGAやGPUなどのアクセラレータをOpenStackで扱えるようにするプロジェクト
CyborgはもともとNomad(ノマド) と呼ばれるプロジェクトだった.

電話会社から来た要件が背景の一部にあり,
OPNFV DPACC project / ETSI NFV ISGを対処するためにNomad が設立された.
しかしNomadで定められた目標が限定的で,
OpenStackコミュニティ内での長い議論から
Cyborgプロジェクトが設立された

Cyborgのユースケース例(オペレータ側)

実際に操作するコマンド例

  • アクセラレータの列挙(リスト表示)

    cyborg accelerator list --feature-tag DEEP_LEARNNING

    ディープラーニングに特化したアクセラレータを列挙する機能?

  • アクセラレータの識別と探索

    cyborg accelerator discover

  • インスタンスにアクセラレータをアタッチ/デタッチ

    cyborg accelerator attach --instance-id FPGA_VF_1

  • アクセラレータのドライバのインストール

    cyborg accelerator install --driver-id SPDK_Driver

アーキテクチャ

アーキテクチャはOpenStackの他のプロジェクトと似ている, らしい

cyborg-architecture.png

上記画像はCyborgのRepositoryから引用

  • REST APIインタフェース
  • バックエンドにはDBを使用
  • 各種ドライバ(現時点では,generic stub driverのみ)

Pike リリース

  • Basic frameworkをリリース
    • REST API
      • GET /accelerators
      • GET /accelerators/{uuid}
      • POST /accelerators
      • PUT /accelerators/{uuid}
      • DELETE /accelerators/{uuid}
    • conductor & agent
    • Devstack plugin
    • generic stub driver

Installation

最近devstack pluginが公開され,
devstackで簡単にインストール出来るようになった

enable_plugin cyborg git://git.openstack.org/openstack/cyborg master

2017/12/05現在 masterで動くことを確認.stable/pikeはインストール失敗する.

cyborg-agent cyborg-api cyborg-conductor cyborg-dbsync
がコマンドとしてインストールされる.

(6行目を除いて)中身は全て同じであり,

#!/usr/bin/python
# PBR Generated from u'console_scripts'

import sys

from cyborg.cmd.api import main

if __name__ == "__main__":
    sys.exit(main())

だったので現時点ではモック?(自信なし)
使い方が分からず...

ImportError: No module named cyborg.cmd.apiとか言われるので,
ライブラリが見つけられていないかも

アーキテクチャロードマップ

ライトグリーンは既に実装済み
グリーンはQueenリリースまでに行う優先事項
赤色はサポート外 (GPUドライバとか)

map.png

youtubeの動画から引用

Queens リリース

Queens初回リリースの見通し

  • Denver PTG discussion
  • 2つの優先事項の実行,完遂
    • Nova (Placement) Interaction
    • 少なくとも1つのバックエンド環境でend to end 機能テスト

オープンコミュニティ

Huawei, Red Hat, NEC, Fujitsu, SUSEなど各社集まってプロジェクトが進行中