Opened 17 years ago

Last modified 16 years ago

#10 closed defect

ParaVM support — at Version 6

Reported by: ecprice Owned by: nelhage
Priority: blocker Milestone: Public Beta
Component: database Version:
Keywords: Cc:

Description (last modified by broder)

Make it possible to create and control ParaVM machines from the web interface and boot them through the database

Change History (6)

comment:1 Changed 16 years ago by tabbott

  • Priority changed from minor to major

Since this is essentially blocking paraVMs support for the service, its priority should be higher.

comment:2 Changed 16 years ago by andersk

The important blocker for paravirtualized guests is a way to load the guest kernel. Having the guest kernel locked at 2.6.18 isn’t acceptable, and even if it were, we’d have to coordinate black-mesa host kernel upgrades with all paravirt guests at once to have the right modules available.

I suspect paravirt console support is straightforward, but paravirt kernel loading requires a mechanism we don’t have, unless we decide we’re willing to trust pygrub.

comment:3 follow-ups: Changed 16 years ago by anonymous

Using Pygrub:

  • Save the kernel and ramdisk images inside of the guest domain.
  • Create a grub config file, /boot/grub/menu.lst in the guest domain that contains an entry for booting off of the kernel and ramdisk images inside of the guest.
    • The root option for the kernel entry should look identical to the root option in the original guest domain's config file.
    • pygrub seems to understand only a small fraction of the options that grub understands; for example, it does not understand "boot" or "savedefault." A very basic menu.lst file is all that is needed.
  • Modify the guest domain's config file to exclude the kernel and ramdisk entries and include a new entry: "bootloader = /path/to/pygrub"
    • The "root" line in the domU's config file is probably also unnecessary; it's presence does not seem to affect performance
  • Start up the paravm in the same way: xm create -c /etc/xen/paravm_config_file

comment:4 in reply to: ↑ 3 Changed 16 years ago by price

3 was neboat.

  • Start up the paravm in the same way: xm create -c /etc/xen/paravm_config_file

There's an example of this in /etc/xen/neboat.para.test1.cfg, starting a test machine neboat_para_test1.

comment:5 in reply to: ↑ 3 Changed 16 years ago by neboat

  • Modify the guest domain's config file to exclude the kernel and ramdisk entries and include a new entry: "bootloader = /path/to/pygrub"

Also check that the entry for "disk" contains the device that holds the root portion of the filesystem first in the array; otherwise pygrub, when run from the paravm's config file, will fail.

comment:6 Changed 16 years ago by broder

  • Component changed from vnc to database
  • Description modified (diff)
  • Milestone set to Public Beta
  • Owner changed from quentin to nelhage
  • Priority changed from major to critical
  • Type changed from enhancement to defect

Now that we have pygrub and ParaVMs working, we need support for them from the web interface and database.

Note: See TracTickets for help on using tickets.