понедельник, 7 ноября 2011 г.

Configuring Openstack images to write in console.log

If you want to see booting process and kernel output in openstack console.log file you need to modify kernel params. By default "quiet splash" in kernel parameters. You need to delete it  and add "console=ttyS0". It will output to first serial port console. By default serial port 1 is set in libvirt xml files.


<console type='file'>
  <source path='/mnt/drbd0/nova/instances/instance-00000044/console.log'/>
  <target type='serial' port='1'/>
</console>


Ubuntu:
Edit /etc/default/grub:
....
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"
...
GRUB_TERMINAL=console
...
Then type "update-grub" to generate new grub.cfg. Tested on Ubuntu 11.04, 11.10

Fedora:
Edit /etc/grub.conf. Remove "quiet spalsh" params and add "console=ttyS0". Tested on fedora 14, 15.

Tested on libvirt-0.9.1-1.fc15.x86_64

To see what write to file
du -h /var/lib/nova/instances/instance-00000015/console.log

Add pci hot-plug in images for Openstack.

We use Openstack Diablo release on fedora. To fully use openstack nova-volume service you need to add PCI hot-plug feature in guest system. It will allow to attach and detach volumes without reboot. Linux Kernels support this feature with acpiphp module.

Ubuntu:
We need to load acpiphp module. To load it automatically after reboot
 echo "acpiphp" >> /etc/modules
Tested on Ubuntu 11.04, 11.10.

Fedora:
I have use libvirt VMs and by default there is acpi=off kernel parameter. To allow pci hotplugging remove acpi=off from kernel parameters by editing /etc/grub.conf. Tested on fedora 14, 15

CentOS:
Simplest solution it is add "modprobe acpiphp" string in /etc/rc.local. Tested on CentOS 5.6
echo "modprobe acpiphp" >> /etc/rc.local
How to attach volume in OpenStack:
To create 1GB volume with euca2ools and attach it to instance:
euca-create-volume -s 1 -z nova
euca-attach-volume -i i-00000043 -d /dev/vdb vol-00000003 
To see disk in guest system:
fdisk -l 
All works good, if you can attach, detach and again attach volume to instance.