SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|

2015-12-08(Tue) SwiftにGlanceしてみたい 

  どうも本格的に使う前に、味見するだけで相当かかりそうなopenstackであるが、イメージサービス「Glance」が、オブジェクトストレージ「Swift」を利用していないことに気づいてしまった。せっかくなので上に載せてみたい。

  んが、どうもpackstackによりインストール時からその状態にすることはできないようで、インストール完了後に設定を行う必要がありそうな感じ。openstackについては、まだ右も左もわからない状態なので、そのまんま「glance swift」としてググってみる。すると、容易に「ObjectStorage Service をイメージの保管に使用する方法」などという、ほぼそのまんまっぽい情報が見つかった。

  ところがその通りに設定してもダメ。glance-apiが「ERROR: Store forscheme swift not found」とかいって起動しない。なんじゃこりゃ。

  そもそも認証とかエンドポイントの概念について、ほとんどわかってないんだよな。コマンドラインからkeystoneでトークンをもらってみたり、telnetでhttp://xx.xx.xx.xx:5000/v2.0/につないでみたりしてみる。なるほど。エンドポイントとはURIであり、httpのPOSTで認証情報と命令を送り、結果を受取るわけか。

  と、極めて初歩的な気付きが得られたものの、Glanceのエラーについてはサッパリわからず。manページを眺めたり、confをgrepしたり……って、ん? schemeって、storeのタイプってこと? もしかして、こうか?

# vi /etc/glance/glance-api.conf
  :
# List of stores enabled (list value)
stores=swift,file,http
  :

  おぉ、glance-apiが上がるようになった。なんだよ、一番大事な設定が抜けてたんじゃねぇか。ちゃんと書いておけよな。ブツブツいいながら、Horizonのadmin権限で、Fedora23のイメージをGlanceに登録してみた。成功。これで、オブジェクトストレージを見に行けば、イメージがオブジェクトとして登録されているはず……と思ったら、登録されてない。なんで?

  fileとして登録されているFedora23のイメージが/var/lib/glance/imagesの下に存在していることはわかっている。加えて、swiftとして登録されているであろう同程度のサイズのファイルが、/srv/node/device1/objectsの下にも存在していることもわかっている。

  もしかして、Glanceユーザのテナントに配置されている? Glanceユーザでなんて、ログインできるのかしらん。Horizonにログインするにはパスワードいるよな。設定した覚えはないが……って、もしかしてアレか。/etc/glance/glance.conf的な設定ファイルの中に自動設定されているとか? ビンゴ!

# cat /etc/glance/glance-api.conf | grep -i password
admin_password=****************

  HorizonにGlanceユーザとしてログインしオブジェクトストレージを見に行ったら……あった! glanceコンテナの中にそれっぽいサイズのオブジェクトが。なるほど、そういう仕組みなのね。

  画像の説明

  で、この設定もkugutsuスクリプトに起こしてみた。こうだ。

#===========================================================================
#
#   glance のバックエンドを swift に変更
#
kgt.execs([
    kgt.systemctl(%w!status openstack-glance-registry!),
    kgt.systemctl(%w!status openstack-glance-api!),
])
 
swift_store_auth_address, swift_store_key =
    kgt.get_params('/etc/swift/proxy-server.conf', ['auth_uri', 'admin_password'])
 
kgt.modify(
    '/etc/glance/glance-api.conf', [
    kgt.ss_set_param('stores=',                                 'swift,file,http'),
    kgt.ss_set_param('default_store=',                          'swift'),
    kgt.ss_set_param('swift_store_auth_address=',               swift_store_auth_address),
    kgt.ss_set_param('swift_store_create_container_on_put=',    'True'),
    kgt.ss_set_param('swift_store_user=',                       'services:swift'),
    kgt.ss_set_param('swift_store_key=',                        swift_store_key),
])
 
kgt.execs([
    kgt.systemctl(%w!restart openstack-glance-registry!),
    kgt.systemctl(%w!restart openstack-glance-api!),
])

  ならばよし!