I then deployed OpenStack across a cluster of Cavium ThunderX CRB1s systems
using the current Mitaka Juju charms. I configured the nova-compute charm to pull
packages from this overlay PPA:
openstack-origin: ppa:ce-hyperscale/cloud-mitaka
I logged into each of the 3 nova-compute nodes and created hugepages:
$ echo 4096 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
And restarted libvirt/nova-compute just to be sure they were detected:
$ sudo service libvirt-bin restart; sudo service nova-compute restart
I configured the m1.small flavor type to use hugepages:
$ nova flavor-key m1.small set hw:mem_page_size=2048
I then launched a guest:
$ nova boot --image xenial-uefi --flavor m1.small --nic net-id=0fed1d06-2c7c-48ab-b81b-112af6d362d7 uefi
Then found the corresponding hypervisor node and logged in.
I verified that QEMU was started w/ the appropriate memory-backend settings:
@mveenasl asked that I describe my testing process - here it is:
I pushed this change to a PPA: /launchpad. net/~ce- hyperscale/ +archive/ ubuntu/ cloud-mitaka
https:/
I then deployed OpenStack across a cluster of Cavium ThunderX CRB1s systems
using the current Mitaka Juju charms. I configured the nova-compute charm to pull
packages from this overlay PPA:
openstack-origin: ppa:ce- hyperscale/ cloud-mitaka
I logged into each of the 3 nova-compute nodes and created hugepages:
$ echo 4096 | sudo tee /sys/kernel/ mm/hugepages/ hugepages- 2048kB/ nr_hugepages
And restarted libvirt/ nova-compute just to be sure they were detected:
$ sudo service libvirt-bin restart; sudo service nova-compute restart
I configured the m1.small flavor type to use hugepages: page_size= 2048
$ nova flavor-key m1.small set hw:mem_
I then launched a guest: 0fed1d06- 2c7c-48ab- b81b-112af6d362 d7 uefi
$ nova boot --image xenial-uefi --flavor m1.small --nic net-id=
Then found the corresponding hypervisor node and logged in.
I verified that QEMU was started w/ the appropriate memory-backend settings:
$ ps -ef | grep qemu qemu-system- aarch64 -name instance-00000001 -S -machine virt,accel= kvm,usb= off,gic- version= 3 -cpu host -drive file=/usr/ share/AAVMF/ AAVMF_CODE. fd,if=pflash, format= raw,unit= 0,readonly= on -drive file=/var/ lib/libvirt/ qemu/nvram/ instance- 00000001_ VARS.fd, if=pflash, format= raw,unit= 1 -m 2048 -realtime mlock=off -smp 1,sockets= 1,cores= 1,threads= 1 -object memory- backend- file,id= ram-node0, prealloc= yes,mem- path=/dev/ hugepages/ libvirt/ qemu,share= yes,size= 2147483648, host-nodes= 0,policy= bind -numa node,nodeid= 0,cpus= 0,memdev= ram-node0 [...]
libvirt+ 850307 1 42 16:17 ? 00:00:12 /usr/bin/
And that the hugepage pool was actually depleted: system/ node/node0/ hugepages/ hugepages- 2048kB/ free_hugepages
$ cat /sys/devices/
3072
And finally, checked the console log to make sure the guest OS actually booted:
ubuntu@ubuntu:~$ nova console-log uefi | tail -2
[ 196.813164] cloud-init[1242]: Cloud-init v. 0.7.7 finished at Fri, 30 Sep 2016 16:21:21 +0000. Datasource DataSourceEc2. Up 196.73 seconds