Commit graph

60 commits

Author SHA1 Message Date
Eelco Dolstra 68ebbb6093 * Put /nix on /ephemeral0 using AUFS (with the original /nix from the
AMI as a base) because the root filesystem is rather small.

svn path=/nixos/trunk/; revision=23534
2010-08-29 22:29:10 +00:00
Eelco Dolstra 34719e0c4a * On second thought, panicking in stage 1 doesn't help because it
won't actually cause the instance to be terminated (even if
  "panic=1" were to be set), merely rebooted.

svn path=/nixos/trunk/; revision=23533
2010-08-29 22:11:33 +00:00
Eelco Dolstra a242602b40 * /data -> /ephemeral0.
* Put /tmp and /var on the /ephemeral0, as it has much more
  space than the root filesystem.
* Panic on stage 1 errors since they cannot be repaired anyway.

svn path=/nixos/trunk/; revision=23532
2010-08-29 22:09:15 +00:00
Eelco Dolstra 4963f769d9 * Print the host public key on the console so that the user can obtain
it securely by parsing the output of ec2-get-console-output.

svn path=/nixos/trunk/; revision=23524
2010-08-29 21:03:22 +00:00
Eelco Dolstra 4bca743766 * Typo.
svn path=/nixos/trunk/; revision=23485
2010-08-27 15:31:04 +00:00
Eelco Dolstra 392275f185 * Move support for writable Nix stores to qemu-vm.nix.
svn path=/nixos/trunk/; revision=23393
2010-08-24 12:59:16 +00:00
Rob Vermaas e87a298c33 qemu virtualiztion: do not pass username on guest cifs mount, use sec=none in stead
svn path=/nixos/trunk/; revision=23243
2010-08-19 08:32:31 +00:00
Eelco Dolstra 31db968be4 * In QEMU, set a higher refresh rate in xorg.conf so that resolutions
higher than 800x600 work.
* Add a "Monitor" statement to the "Screen" section, because otherwise
  the Monitor section is ignored.

svn path=/nixos/trunk/; revision=23068
2010-08-09 20:10:16 +00:00
Eelco Dolstra d659488209 * Use the regular GRUB menu builder for Amazon. There are two issues:
we want to generate the GRUB menu without actually installing GRUB
  (because Amazon supplies its own pv-grub), and each menu entry
  requires "root (hd0)".  For the first, allow boot.loader.grub.device
  to be set to "nodev" to indicate that the GRUB menu should be
  generated without installing GRUB.  For the second, add an option
  boot.loader.grub.extraPerEntryConfig to allow commands to be added
  to each GRUB menu entry (in this case, "root (hd0)").

svn path=/nixos/trunk/; revision=22712
2010-07-22 14:40:29 +00:00
Eelco Dolstra d7f638da0c * Amazon now supports booting a custom kernel in the AMI using
pv-grub, so supply a GRUB menu that starts our own kernel and
  initrd.

svn path=/nixos/trunk/; revision=22678
2010-07-20 13:53:14 +00:00
Eelco Dolstra b614179eed * Install a configuration.nix in the AMI.
svn path=/nixos/trunk/; revision=22607
2010-07-15 11:09:30 +00:00
Eelco Dolstra 4b018d1294 svn path=/nixos/trunk/; revision=22587 2010-07-13 20:47:31 +00:00
Eelco Dolstra 363806e89b * To establish the connection to the root shell in the guest, let the
guest connect to a Unix domain socket on the host rather than the
  other way around.  The former is a QEMU feature (guestfwd to a
  socket) while the latter requires a patch (which we can now get rid
  of).

svn path=/nixos/branches/boot-order/; revision=22331
2010-06-18 19:31:02 +00:00
Eelco Dolstra 46ac1375a7 * Don't use -smb and -no-kvm-irqchip. Maybe this makes VM builds more
reliable.

svn path=/nixos/branches/boot-order/; revision=22280
2010-06-15 16:15:17 +00:00
Eelco Dolstra e2dbfbdcf4 * Use writeback caching for virtual disks instead of writethrough
caching.  This makes a huge performance difference (e.g. from 4 MB/s
  `dd' throughput to 140 MB/s on the Hydra machines).  As the QEMU
  manual says: "Some block drivers perform badly with
  ‘cache=writethrough’, most notably, qcow2."

svn path=/nixos/branches/boot-order/; revision=22248
2010-06-13 23:36:55 +00:00
Eelco Dolstra 156ba2def2 * Don't use the "kvm-clock" clock source because it's unreliable.
When starting multiple VMs, some will have perfectly synchronised
  clocks, while others will have their clocks run much slower (say, a
  factor of 5).

svn path=/nixos/branches/boot-order/; revision=22195
2010-06-09 13:15:15 +00:00
Eelco Dolstra c1ecdf708f * Put the hostname of the VM in the window title.
svn path=/nixos/branches/boot-order/; revision=22191
2010-06-09 10:51:05 +00:00
Eelco Dolstra 085a47c88a * Bind mounts should have filesystem type "none" to prevent an
invocation of "fsck.auto" at boot time.

svn path=/nixos/branches/boot-order/; revision=22166
2010-06-07 12:16:59 +00:00
Eelco Dolstra dc49a0ce3f * Don't use klibc in the initrd. It's simpler (and slightly smaller)
to use the standard (coreutils) tools.
* Use util-linux's `switch_root' to switch over to the target root
  FS.  It automatically moves over the /dev, /proc and /sys from stage
  1, so stage 2 doesn't need to set them up again.

svn path=/nixos/trunk/; revision=22085
2010-06-01 15:53:24 +00:00
Eelco Dolstra 4dac9e5814 * Allow more complex network topologies in distributed tests. Each
machine can now declare an option `virtualisation.vlans' that causes
  it to have network interfaces connected to each listed virtual
  network.  For instance,

    virtualisation.vlans = [ 1 2 ];

  causes the machine to have two interfaces (in addition to eth0, used
  by the test driver to control the machine): eth1 connected to
  network 1 with IP address 192.168.1.<i>, and eth2 connected to
  network 2 with address 192.168.2.<i> (where <i> is the index of the
  machine in the `nodes' attribute set).  On the other hand,
  
    virtualisation.vlans = [ 2 ];

  causes the machine to only have an eth1 connected to network 2 with
  address 192.168.2.<i>.  So each virtual network <n> is assigned the
  IP range 192.168.<n>.0/24.

  Each virtual network is implemented using a separate multicast
  address on the host, so guests really cannot talk to networks to
  which they are not connected.

* Added a simple NAT test to demonstrate this.

* Added an option `virtualisation.qemu.options' to specify QEMU
  command-line options.  Used to factor out some commonality between
  the test driver script and the interactive test script.

svn path=/nixos/trunk/; revision=21928
2010-05-20 21:07:32 +00:00
Eelco Dolstra ad8ed39285 * It should not be necessary to run ntpd in the guest.
svn path=/nixos/trunk/; revision=21925
2010-05-20 14:51:46 +00:00
Rob Vermaas 310eefffe7 added virtualisation.diskSize option to specify default image size of disk in qemu-kvm vm
svn path=/nixos/trunk/; revision=21422
2010-04-29 12:37:26 +00:00
Rob Vermaas 94e36ec1c7 virtualisation/qemu-kvm.nix: use noacl option for hostfs mount
svn path=/nixos/trunk/; revision=21129
2010-04-16 15:53:54 +00:00
Rob Vermaas 46b109e97e revert previous commit
svn path=/nixos/trunk/; revision=21128
2010-04-16 15:45:59 +00:00
Rob Vermaas b75d15a9a8 virtualisation: add option to switch off readonly host fs in vm
svn path=/nixos/trunk/; revision=21126
2010-04-16 15:09:47 +00:00
Ludovic Courtès 8e16742b79 Update users of `services.sshd'.
svn path=/nixos/trunk/; revision=20575
2010-03-11 17:02:53 +00:00
Eelco Dolstra fc583b7054 * When QEMU encounters a "disk full" condition on the host filesystem,
its default behaviour is to stop the emulator (i.e. suspend the VM).
  For automated tests, this is bad, because is makes the VM appear to
  hang without any error message.  The "werror=report" flag causes
  QEMU to report the problem to the VM.  As a side effect QEMU exits
  very elegantly:

    [    2.308668] end_request: I/O error, dev vda, sector 534400
    [    2.309611] Buffer I/O error on device vda, logical block 66800
    ...
    *** glibc detected *** /nix/store/yhngqrww53j0aw7z7v4bv948x5g5fc3d-qemu-kvm-0.12.1.2/bin/qemu-system-x86_64: double free or corruption (!prev): 0x08e3e040 ***
    Aborted

  So I guess we now depend on a bug in QEMU :-)

svn path=/nixos/trunk/; revision=19703
2010-01-27 10:36:43 +00:00
Eelco Dolstra 32995b3d36 * Make the AMI disk a bit bigger. Thanks to sparse images and
compression this shouldn't be expensive.

svn path=/nixos/trunk/; revision=19647
2010-01-25 10:40:08 +00:00
Eelco Dolstra cb728f833f svn path=/nixos/trunk/; revision=19624 2010-01-22 21:07:06 +00:00
Eelco Dolstra 9094ecb546 * Some hacks to get the image to work with newer EC2 kernels/initrds.
svn path=/nixos/trunk/; revision=19622
2010-01-22 20:22:40 +00:00
Eelco Dolstra 12a0a68749 * Initialise the Nix database in the VM.
* Set the hostname at startup.
* Mount the ephemeral data disk (/dev/sda2).


svn path=/nixos/trunk/; revision=19619
2010-01-22 17:31:23 +00:00
Eelco Dolstra 3e3448a7df * Added an Upstart job to fetch the SSH key for logging into the root
account of the VM.  However, it doesn't work yet (the machine
  doesn't boot properly and there is no console output).  So use a
  hard-coded password for now (very dangerous!).

svn path=/nixos/trunk/; revision=19589
2010-01-21 08:03:58 +00:00
Eelco Dolstra 590acc193c * A module for generating a disk image suitable for use with Amazon's
Elastic Compute Cloud (EC2).  TODO: run ec2-bundle-image here.

svn path=/nixos/trunk/; revision=19580
2010-01-20 18:10:02 +00:00
Eelco Dolstra 79add5ecbc * Make the Nix store in the guest writable.
svn path=/nixos/trunk/; revision=19326
2010-01-10 01:20:30 +00:00
Eelco Dolstra 13878cb78d * Panic on out-of-memory.
svn path=/nixos/trunk/; revision=19200
2010-01-04 09:51:57 +00:00
Lluís Batlle i Rossell 79073c7b3d Adding a virtualisation option: run qemu without graphics.
svn path=/nixos/trunk/; revision=18978
2009-12-15 18:49:34 +00:00
Eelco Dolstra 6c9059e717 * Added an option `boot.initrd.availableKernelModules' that specifies
modules that should be added to the initrd, but should only be
  loaded on demand (e.g. by the kernel or by udev).  This is
  especially useful in the installation CD, where we now only load the
  modules needed by the hardware.
* Enable automatic modprobing by udev in the initrd.

svn path=/nixos/trunk/; revision=18975
2009-12-15 16:38:20 +00:00
Eelco Dolstra a612fd0d5e * Obsoleted boot.initrd.extraKernelModules (use
boot.initrd.kernelModules instead).

svn path=/nixos/trunk/; revision=18969
2009-12-15 14:05:01 +00:00
Rob Vermaas 1dfab1d7ea * virtualisation.memorySize option to set memory size of virtual machine
svn path=/nixos/trunk/; revision=18933
2009-12-14 11:15:37 +00:00
Eelco Dolstra d545d08461 * In the network-interfaces task, emit an ip-up event if there is a
statically configured interface (i.e. we're not running dhclient).
  Otherwise the ntpd job won't be triggered.
* Use the "-n" flag of "initctl emit" to send the event
  asynchronously.

svn path=/nixos/branches/upstart-0.6/; revision=18227
2009-11-06 21:38:40 +00:00
Eelco Dolstra 3fcb7c2cb5 * Set the nameserver.
svn path=/nixos/branches/upstart-0.6/; revision=18218
2009-11-06 19:19:46 +00:00
Eelco Dolstra 3e9665dd96 * X server autoconfiguration. Rather than specifying a fixed video
driver (in services.xserver.videoDriver), the X server is now given
  a set of drivers, and will use PCI ids to find the right one.

  The only problem is that the choice of OpenGL driver (the
  /var/run/opengl-driver symlink) depends on what driver is selected
  at runtime (i.e. the NVIDIA implementation for "nvidia", and Mesa
  for all other drivers).  However this isn't a big problem right now
  since "nvidia" isn't included in the default set of drivers anyway
  for legal reasons.
  
* `services.xserver.resolutions' now defaults to [], meaning that the
  X server should figure out the desired resolution(s) itself.
  Likewise, `services.xserver.defaultDepth' defaults to 0 to let the X
  server figure it out.

* Removed some options from xorg.conf that no longer appear needed
  ("Composite" and the DRI "Mode").

svn path=/nixos/trunk/; revision=18176
2009-11-06 00:59:03 +00:00
Eelco Dolstra 22693ae44e * Disable wireless in a VM to prevent wpa_supplicant from flooding the
log.

svn path=/nixos/trunk/; revision=17010
2009-09-10 14:43:11 +00:00
Eelco Dolstra 685335df2f * system.build.system -> system.build.toplevel, since the former name
is just too weird.

svn path=/nixos/trunk/; revision=16954
2009-09-04 09:29:18 +00:00
Eelco Dolstra 6723473421 * Give some more memory to the VMs.
svn path=/nixos/trunk/; revision=16939
2009-09-02 18:33:38 +00:00
Eelco Dolstra 7f8272dd70 * Make the host filesystem writable for non-root. This is a temporary
hack to enable non-root processes to write coverage data.

svn path=/nixos/trunk/; revision=16891
2009-08-29 14:14:42 +00:00
Eelco Dolstra ff146aee08 svn path=/nixos/trunk/; revision=16843 2009-08-24 22:09:19 +00:00
Eelco Dolstra 44fb2e4ecd * Allow adding additional kernel parameters.
svn path=/nixos/trunk/; revision=16792
2009-08-20 23:20:19 +00:00
Eelco Dolstra fe329f96ef * Mount the host's /nix/var/nix/db in the guest.
svn path=/nixos/trunk/; revision=16674
2009-08-11 14:28:25 +00:00
Eelco Dolstra f666aa7479 * With "nixos-rebuild build-vm", override the video driver of
the host (since e.g. "nvidia" won't work in the VM).

svn path=/nixos/trunk/; revision=16663
2009-08-11 02:02:01 +00:00