web-dev-qa-db-ja.com

nova-volumeJujuチャームでボリュームグループを作成する

Nova-volume Jujuチャームをデプロイする前にボリュームグループを設定する必要がありますか? UbuntuにOpenstackをローカルにインストールしようとしていますVMローカル(lxc)モードで実行しています。物理ボリュームが存在しないか、ループバックが見つからないというエラーが表示されます。フックを見てください。ループバックボリュームグループを作成しようとしているかどうかを確認できません。

Jujuデバッグログからのループバックエラーメッセージを次に示します。

2012-05-24 11:30:53,876 unit:nova-volume/4: hook.output INFO: Processing triggers for initramfs-tools ...
2012-05-24 11:30:56,306 unit:nova-volume/4: hook.output ERROR: losetup: Could not find any loop device. Maybe this kernel does not know
       about the loop device? (If so, recompile or `modprobe loop'.)
2012-05-24 11:30:56,307 unit:nova-volume/4: hook.output ERROR: 
2012-05-24 11:30:56,311 unit:nova-volume/4: hook.output ERROR: failed to setup loop device for /var/lib/nova-volumes/my-vol.img
2012-05-24 11:30:56,524 unit:nova-volume/4: unit.hook.api INFO: ERROR: failed to get device for /var/lib/nova-volumes/my-vol.img|2G
2012-05-24 11:30:56,526 unit:nova-volume/4: hook.output INFO: {}
2012-05-24 11:30:56,547 unit:nova-volume/4: hook.output DEBUG: hook install exited, exit code Traceback (most recent call last):
Failure: juju.errors.CharmInvocationError: Error processing '/var/lib/juju/units/nova-volume-4/charm/hooks/install': exit code 1.
.
2012-05-24 11:30:56,548 unit:nova-volume/4: hook.executor DEBUG: Hook error: /var/lib/juju/units/nova-volume-4/charm/hooks/install Error processing '/var/lib/juju/units/nova-volume-4/charm/hooks/install': exit code 1.
2012-05-24 11:30:56,552 unit:nova-volume/4: statemachine DEBUG: unitworkflowstate:  executing error transition error_install, Error processing '/var/lib/juju/units/nova-volume-4/charm/hooks/install': exit code 1.
2012-05-24 11:30:56,577 unit:nova-volume/4: statemachine DEBUG: unitworkflowstate: transition error_install (None -> install_error) {}
2012-05-24 11:30:56,587 unit:nova-volume/4: statemachine DEBUG: unitworkflowstate: transition complete error_install (state install_error) {}
2012-05-24 11:30:56,605 unit:nova-volume/4: juju.agents.unit DEBUG: Configuration Changed
2012-05-24 11:30:56,606 unit:nova-volume/4: juju.agents.unit DEBUG: Configuration updated on service in a non-started state
2012-05-24 11:30:56,611 unit:nova-volume/4: juju.agents.unit INFO: No upgrade flag set.
1
Matt McClean

これをLXCで実行するには、少し注意が必要です。まず、ホストがループバックとLVMをサポートし、適切なモジュールがロードされていることを確認する必要があります。次に、いくつかの手動手順を完了する必要があります。

まず、losetupとLVMが必要とするさまざまなデバイスノード、具体的には/ dev/loop [0-9]、/ dev/loop-control、および/ dev/mapper/controlへのコンテナーアクセスを許可します。

/usr/share/pyshared/juju/lib/lxc/data/lxc.confに、以下を追加します。

lxc.cgroup.devices.allow = c 10:236 rwm
lxc.cgroup.devices.allow = c 10:237 rwm
lxc.cgroup.devices.allow = b 7:* rwm

次に、コンテナ内にループ制御デバイスノードを手動で作成する必要もあります。ユニットをすでにデプロイしていて、Jujuに環境用のテンプレートがある場合は、そのテンプレートの/ devディレクトリ内でこれを行うことができます。例:

Sudo mknod /var/lib/lxc/adam-sample-0-template/rootfs/dev/loop-control c 10 237

/ dev/mapper/controllerデバイスノードは、LVMがインストールされるときに作成されます。

または、nova-volumeチャームを変更して、インストールフック中に自動的にこれを行うこともできます。残念ながら、JujuまたはLXCが新しいコンテナーの/ devディレクトリを事前承認して、チャームに必要なデバイスを追加する方法がわかりません。これらの種類の機能が着陸するまで、nova-volumeチャーム(そしておそらくnova-computeも)は、LXCコンテナーで正しく機能するように、このような厄介な回避策を必要とする可能性があります。

2
adam_g