Unfortunately it seems like this will rename all devices - see next
item.
+Note: virtio_blk *IS* supported by all our minimum platforms,
+ie. CentOS 5.3, Fedora 11, Debian.
+
----------------------------------------------------------------------
-"Device independent" naming for devices.
+Qemu options -- After discussion with the KVM developers, they have
+recommended some flags which will improve the safety and reliability
+of KVM. Need to test that these also work under qemu (or at least, do
+no harm):
-With a Fedora-based appliance, using libata driver, devices have
-"SCSI" names like /dev/sda.
+-no-hpet HPET support is broken and should be disabled.
-With an EPEL-based appliance, using old ide driver, devices have names
-like /dev/hda.
+-rtc-td-hack Keeps the rtc clock source track time correctly.
+
+-drive file=...,if=[ide|virtio],cache=off
+ cache=off is necessary to improve reliability in the
+ event of a system crash when writing.
+
+----------------------------------------------------------------------
-If we use virtio_blk, devices will have names like /dev/vda.
+"Standalone/local mode"
-What a mess.
+Instead of running guestfsd (the daemon) inside qemu, there should be
+an option to just run guestfsd directly.
-So the idea would be to add a device independent naming scheme, such
-as the one used by grub:
+The architecture in this mode would look like:
- "(hdX)" X = 0 means 'a', X = 1 means 'b' and so on.
- "(hdX,Y)" Device X, partition Y (in grub, this counts from 0 which is
- deeply confusing).
+ +------------------+
+ | main program |
+ |------------------|
+ | libguestfs |
+ +--------^---------+
+ | | reply
+ cmd | |
+ +----v-------------+
+ | guestfsd |
+ +------------------+
-There would have to be a very simple rule. If guestfsd was expecting
-a /dev block device or partition name, then the alternate form can be
-used, and we would just look it up using the normal output of
-guestfs_list_devices.
+Notes:
-Maybe best is to use /dev/sda as the "standard" naming. That
-shouldn't cause conflicts in the appliance because we tightly control
-what drivers are available.
+(1) This only makes sense if we are running as root.
-Note there's a lot of hackery that currently exists in tests.c which
-could be *removed* if we made this change.
+(2) There is no console / kernel messages in this configuration, but
+we might consider capturing stderr from the daemon.
-Open: Should the substitution be done in the library layer or in the
-daemon?
+(3) guestfs_config and guestfs_add_drive become no-ops.
+
+Obviously in this configuration, commands are run directly on the
+local machine's disks. You could just run the commands themselves
+directly, but libguestfs provides a convenient API and language
+bindings. Also deals with tricky stuff like parsing the output of the
+LVM commands. Also we get to leverage other code such as
+virt-inspector.
+
+This is mainly useful from live CDs, ie. virt-p2v.
+
+Should we bother having the daemon at all and just link the guestfsd
+code directly into libguestfs?
----------------------------------------------------------------------
-Qemu options -- After discussion with the KVM developers, they have
-recommended some flags which will improve the safety and reliability
-of KVM. Need to test that these also work under qemu (or at least, do
-no harm):
+PPC problems:
--no-hpet HPET support is broken and should be disabled.
+ ppc (32 bit) works with qemu from git, however there is no serial console
--rtc-td-hack Keeps the rtc clock source track time correctly.
+ ppc64 requires extra parameters:
+ -M mac99 -cpu ppc64
+ however it still fails:
+ invalid/unsupported opcode: 01 - 01 - 1a (06301e83) 00000000018c2738 1
+ invalid bits: 00400000 for opcode: 0b - 19 - 15 (2d746572) 0000000000009230
--drive file=...,if=[ide|virtio],cache=off
- cache=off is necessary to improve reliability in the
- event of a system crash when writing.
+ no serial console in ppc or ppc64 because no one can tell us what
+ console=ttyXX option to use