Novaさんはデフォ設定にない隠し設定が多く、設定の把握が大変ですが、わりと素直に動いてくれるいいヤツです。
前にライブマイグレーションについて書きましたが、今回は練り込んでいません。
メモ
Scheduler
基本的な考えはこちらleast_cost_functions と compute_fill_first_cost_fn_weight の負の値により、空きメモリ量が多いホストからVMが割り当てられます。ただし、こんなWARNINGがおこり、解消方法は不明です。
また、RamFilterの怪しい点は調べてあり、ram_allocation_ratio=1.5 は無限VMになりうるので 1.0 にしています。
Console
vnc_enabled=true と [spice] の enabled=true を同時に設定すると、libvirt がエラーを出します。Grizzlyのvnc自体、上手く動かないのもあり、vncは無効にしてspiceを利用しています。
設定の vnc_enabled はデフォの設定ファイルに書いてないので注意してください。
consoleの問題は、DEVSTACKを参考に解決したのでリンクを。
spiceの設定説明はこちらです。
設定
編集する部分、確認すべき部分のみ記載します。ControllerNodeと、ComputeNodeでは my_ip だけが相違点になります。
/etc/nova/nova.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
[DEFAULT] sql_connection = mysql://nova-common:MySQLのパスワード@10.1.26.11:3306/novadb enabled_apis = ec2,osapi_compute,metadata my_ip = 10.1.26.11 # # データディレクトリのパス # state_path=/data/nova instances_path = $state_path/instances base_dir_name = _base # # スケジューラ # scheduler_driver=nova.scheduler.multi.MultiScheduler compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler scheduler_available_filters=nova.scheduler.filters.all_filters scheduler_default_filters=AvailabilityZoneFilter,RamFilter,ComputeFilter least_cost_functions=nova.scheduler.least_cost.compute_fill_first_cost_fn compute_fill_first_cost_fn_weight=-1.0 ram_allocation_ratio=1.0 # # RabbitMQ # rabbit_host = 10.1.26.11 rabbit_virtual_host = /openstack rabbit_userid = openstack rabbit_password = RabbitMQのパスワード rabbit_port = 5672 # # Glance # glance_host=10.1.26.11 glance_num_retries=0 glance_port=9292 glance_api_servers="10.1.26.11:9292" # # Quantum # quantum_url=http://10.1.26.11:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=admin quantum_admin_username=OpenStackAdmin quantum_admin_password=管理者パスワード quantum_admin_auth_url = "http://10.1.26.11:35357/v2.0" service_quantum_metadata_proxy = true quantum_metadata_proxy_shared_secret = /etc/quantum/metadata_agent.iniのquantum_metadata_proxy_shared_secretと同じパスワード # # VNCはOFF # vnc_enabled=false novnc_enable=false novncproxy_base_url=http://10.1.26.11:6080/vnc_auto.html vncserver_proxyclient_address=$my_ip vncserver_listen=0.0.0.0 vnc_keymap="ja" xvpvncproxy_base_url=http://10.1.26.11:6081/console xvpvncproxy_host="0.0.0.0" xvpvncproxy_port=6081 # # LIVE MIGRATION # - 今回は無効 #live_migration_bandwidth=0 #live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE #live_migration_retry_count=30 #live_migration_uri=qemu+tcp://%s/system # # SPICE # [spice] enabled=true agent_enabled=true html5proxy_base_url=http://10.1.26.11:6082/spice_auto.html server_listen=0.0.0.0 server_proxyclient_address=$my_ip keymap=ja |
/etc/nova/api-paste.ini
1 2 3 4 5 6 7 8 |
[filter:authtoken] paste.filter_factory = keystone.middleware.auth_token:filter_factory auth_host = 10.1.26.11 auth_port = 35357 auth_protocol = http admin_tenant_name = admin admin_user = OpenStackAdmin admin_password = 管理者のパスワード |
use_cow_imagesをfalseにするとqcow2ではなくrawフォーマットでイメージファイルを作成できます。今回はtrueのまま使いますが、rawに切り替えたい場合用に備えて書いておきました。
/etc/nova/nova-compute.conf
1 2 3 4 5 6 7 8 |
[DEFAULT] compute_driver=libvirt.LibvirtDriver libvirt_type=kvm libvirt_ovs_bridge=br-int libvirt_vif_type=ethernet libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver libvirt_use_virtio_for_bridges=True use_cow_images=true |
SPICEの修正
そのままだとHorizonからコンソールを見ようとしてもエラーが出ます。その対応として、手で修正しておきます。
63行目に追加します。
/usr/bin/nova-spicehtml5proxy
1 |
opts.append(cfg.StrOpt('my_ip', default='', help='bug fixed by GedowFather')) |
ただのメモですが、SPICEの閲覧用URLの取得方法はこうです。
1 |
nova get-spice-console vm-name-01 spice-html5 |
データディレクトリを変更
デフォの /var/lib/nova だと何かと窮屈なので、設定通り容量の大きいパーティションへ変更します。
1 2 3 4 5 6 7 8 |
# Nova停止 for init in /etc/init.d/nova-*; do $init stop; done # データディレクトリ構成コピー cp -Rp /var/lib/nova /data/ # 起動 for init in /etc/init.d/nova-*; do $init start; done |
たまに業突く張りなこともありますが、基本はエラーログを見て設定を調整するだけなので、時間がかかることはあれど、途方に暮れることはおそらくないでしょう!