我的 squeeze 服务器上的 ganeti 2.4-rc3 安装顺利,我可以成功创建实例:
$ gnt-instance add -t plain -s 5G -o debootstrap+default -n obi-wan vm01
Wed Mar 2 17:12:51 2011 * disk 0, vg xenvg, name fdc7fa9e-19ac-405c-adad-f72da34d6682.disk0
Wed Mar 2 17:12:51 2011 * creating instance disks...
Wed Mar 2 17:12:51 2011 adding instance vm01.physcip.uni-stuttgart.de to cluster config
Wed Mar 2 17:12:51 2011 - INFO: Waiting for instance vm01.physcip.uni-stuttgart.de to sync disks.
Wed Mar 2 17:12:51 2011 - INFO: Instance vm01.physcip.uni-stuttgart.de's disks are in sync.
Wed Mar 2 17:12:51 2011 * running the instance OS create scripts...
Wed Mar 2 17:13:03 2011 * starting instance...
$
它告诉我实例运行良好:
$ gnt-instance list
Instance Hypervisor OS Primary_node Status Memory
vm01.physcip.uni-stuttgart.de xen-pvm debootstrap+default obi-wan.physcip.uni-stuttgart.de running 128M
但是 debootstrap 无法安装操作系统,因为它无法挂载根设备。这是虚拟机控制台的快照:
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... [ 0.491828] device-mapper: uevent: version 1.0.3
[ 0.492487] device-mapper: ioctl: 4.15.0-ioctl (2009-04-01) initialised: [email protected]
done.
Begin: Waiting for root file system ... done.
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/sda1 does not exist. Dropping to a shell!
安装的内容:
- 带有 xen 4 和 lvm2 的 debian squeeze
- 内核 2.6.32-5-xen-amd64
- ganeti 2.4 rc3
ganeti 集群信息:具有单个节点的集群(名为 obi-wan)
gnt-cluster info
Cluster name: vmcluster.physcip.uni-stuttgart.de
Cluster UUID: 2ae3377c-8682-486d-9ac2-cdac43a136f7
Creation time: 2011-03-01 12:05:10
Modification time: 2011-03-02 14:12:48
Master node: obi-wan.physcip.uni-stuttgart.de
Architecture (this node): 64bit (x86_64)
Tags: (none)
Default hypervisor: xen-pvm
Enabled hypervisors: xen-pvm
Hypervisor parameters:
- xen-pvm:
blockdev_prefix: sd
bootloader_args:
bootloader_path:
initrd_path: /boot/initrd-2.6-xenU
kernel_args: ro
kernel_path: /boot/vmlinuz-2.6-xenU
migration_mode: live
migration_port: 8002
root_path: /dev/sda1
use_bootloader: False
OS-specific hypervisor parameters:
OS parameters:
Hidden OSes:
Blacklisted OSes:
Cluster parameters:
- candidate pool size: 10
- master netdev: xen-br0
- lvm volume group: xenvg
- lvm reserved volumes: (none)
- drbd usermode helper: /bin/true
- file storage path: /srv/ganeti/file-storage
- maintenance of node health: False
- uid pool:
- default instance allocator:
- primary ip version: 4
- preallocation wipe disks: False
Default node parameters:
oob_program: None
Default instance parameters:
- default:
auto_balance: True
memory: 128
vcpus: 1
Default nic parameters:
- default:
link: xen-br0
mode: bridged
答案1
xen-pvm 的默认 root_path 设置是错误的。我通过以下方式更改了 id
gnt-cluster modify --hypervisor-parameter xen-pvm:root_path='/dev/xvda1'
并且 debootstrap 安装 squeeze 就好了!
答案2
这是我的实例创建代码:
-H xen-pvm:kernel_path=/boot/vmlinuz-2.6-xenU,initrd_path=/boot/initrd-2.6-xenU,blockdev_prefix=xvd,root_path=/dev/xvda1