Commit graph

316 commits

Author SHA1 Message Date
aszlig 6353f580f9
nixos/qemu-vm: Disable cache for $NIX_DISK_IMAGE
As @domenkozar noted in #10828, cache=writeback seems to do more harm
than good:

https://github.com/NixOS/nixpkgs/issues/10828#issuecomment-164426821

He has tested it using the openstack NixOS tests and found that
cache=none significantly improves startup performance.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-12-14 17:36:22 +01:00
aszlig a5bc11f9eb
nixos/vm-tests: Remove msize mount option
This seems to be the root cause of the random page allocation failures
and @wizeman did a very good job on not only finding the root problem
but also giving a detailed explanation of it in #10828.

Here is an excerpt:

  The problem here is that the kernel is trying to allocate a contiguous
  section of 2^7=128 pages, which is 512 KB. This is way too much:
  kernel pages tend to get fragmented over time and kernel developers
  often go to great lengths to try allocating at most only 1 contiguous
  page at a time whenever they can.

  From the error message, it looks like the culprit is unionfs, but this
  is misleading: unionfs is the name of the userspace process that was
  running when the system ran out of memory, but it wasn't unionfs who
  was allocating the memory: it was the kernel; specifically it was the
  v9fs_dir_readdir_dotl() function, which is the code for handling the
  readdir() function in the 9p filesystem (the filesystem that is used
  to share a directory structure between a qemu host and its VM).

  If you look at the code, here's what it's doing at the moment it tries
  to allocate memory:

    buflen = fid->clnt->msize - P9_IOHDRSZ;

    rdir = v9fs_alloc_rdir_buf(file, buflen);

  If you look into v9fs_alloc_rdir_buf(), you will see that it will try
  to allocate a contiguous buffer of memory (using kzalloc(), which is a
  wrapper around kmalloc()) of size buflen + 8 bytes or so.

  So in reality, this code actually allocates a buffer of size
  proportional to fid->clnt->msize. What is this msize? If you follow
  the definition of the structures, you will see that it's the
  negotiated buffer transfer size between 9p client and 9p server. On
  the client side, it can be controlled with the msize mount option.

  What this all means is that, the reason for running out of memory is
  that the code (which we can't easily change) tries to allocate a
  contiguous buffer of size more or less equal to "negotiated 9p
  protocol buffer size", which seems to be way too big (in our NixOS
  tests, at least).

After that initial finding, @lethalman tested the gnome3 gdm test
without setting the msize parameter at all and it seems to have resolved
the problem.

The reason why I'm committing this without testing against all of the
NixOS VM test is basically that I think we can only go better but not
worse than the current state.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-12-14 17:26:24 +01:00
Domen Kožar 3fca941aeb virtualisation.qemu.options: specify type 2015-12-13 19:06:22 +01:00
Arseniy Seroka 79d0fc45a9 Merge pull request #11565 from jgillich/rkt
rkt: add service
2015-12-11 08:04:44 +03:00
Jakob Gillich c85ada394f rkt: add service 2015-12-11 05:53:20 +01:00
Evgeny Egorochkin c16f90f515 Azure image: update ssh key type, start before the Azure agent 2015-12-09 07:42:37 +02:00
Evgeny Egorochkin 6db67186f2 Azure image: package and add azure agent 2015-12-09 07:42:37 +02:00
Domen Kožar 7402dd4197 nova-image: don't use ec2-data since it delays the bootup time 2015-12-03 11:10:32 +01:00
lethalman b97f5e8b33 Merge pull request #7993 from wavewave/extra-binds
nixos-container: support user-defined extra binds
2015-11-29 15:42:58 +01:00
Luca Bruno a6c42b5945 nixos/docker: enable socketActivation by default 2015-11-20 23:01:59 +01:00
Tomasz Kontusz d3f6434579 virtualbox service: hide vboxnet0 from NetworkManager, fixes #10862 2015-11-10 12:21:35 +01:00
Domen Kožar f1508b3a23 nova-image: use make-disk-image.nix 2015-10-26 16:16:45 +01:00
Bjørn Forsman 5f17aeb403 nixos/docker: default storageDriver to "devicemapper"
Commit 9bfe92ecee ("docker: Minor improvements, fix failing test") added
the services.docker.storageDriver option, made it mandatory but didn't
give it a default value. This results in an ugly traceback when users
enable docker, if they don't pay enough attention to also set the
storageDriver option. (An attempt was made to add an assertion, but it
didn't work, possibly because of how "mkMerge" works.)

The arguments against a default value were that the optimal value
depends on the filesystem on the host. This is, AFAICT, only in part
true. (It seems some backends are filesystem agnostic.) Also, docker
itself uses a default storage driver, "devicemapper", when no
--storage-driver=x options are given. Hence, we use the same value as
default.

Add a FIXME comment that 'devicemapper' breaks NixOS VM tests (for yet
unknown reasons), so we still run those with the 'overlay' driver.

Closes #10100 and #10217.
2015-10-04 14:34:38 +02:00
Bjørn Forsman 424e6e501a nixos/modules: simplify pkgs.zfs handling
Thanks, @lethalman.
2015-10-04 14:31:16 +02:00
Casey Ransom 791b600aac nixos/docker: Include ZFS commands in PATH for ZFS storagedriver
When using the ZFS storagedriver in docker, it shells out for the ZFS
commands. The path configuration for the systemd task does not include
ZFS, so if the driver is set to ZFS, add ZFS utilities to the PATH.

This will resolve https://github.com/NixOS/nixpkgs/issues/10127

[Bjørn: prefix commit message with "nixos/docker:", remove extra space
before ';']
2015-10-04 14:13:56 +02:00
Eelco Dolstra cab1483a95 Blacklist the xen_fbfront kernel module
This gets rid of a 30 second delay during boot. See e.g
https://github.com/coreos/bugs/issues/208.
2015-09-28 22:15:47 +02:00
Eelco Dolstra e866840a12 Wait for udev after resizing partitions
Otherwise the EC2 boot may panic.
2015-09-28 22:15:47 +02:00
Eelco Dolstra b3347287be Use make-disk-image.nix for VirtualBox images 2015-09-28 14:31:19 +02:00
Eelco Dolstra 640dff2918 Fix GRUB syntax in EC2 HVM images
There is no "root" command in GRUB 2, and it's not needed anyway. This
command delayed HVM boots for a few seconds.
2015-09-28 13:47:14 +02:00
Eelco Dolstra 7338f5ff46 ec2-data.nix: Remove superfluous check 2015-09-28 13:47:14 +02:00
Ian-Woo Kim b3eebcd93c Merge branch 'master' into extra-binds 2015-09-28 06:02:52 +00:00
Ian-Woo Kim c6b031d32b minor changes 2015-09-28 05:48:16 +00:00
Eelco Dolstra aeb31b97ad Update AMI generator
The EBS and S3 (instance-store) AMIs are now created from the same
image. HVM instance-store AMIs are also generated.

Disk image generation has been factored out into a function
(nixos/lib/make-disk-image.nix) that can be used to build other kinds
of images.
2015-09-27 21:06:40 +02:00
Thomas Strobel 1f5f472a8a Revert "openvswitch module: do not fork services"
This reverts commit fcab752abf.
2015-09-24 14:58:31 +02:00
Thomas Strobel 251a00da4c openvswitch module: add option to reset db on start 2015-09-24 12:45:46 +02:00
Eelco Dolstra e73b19ae4e ec2-data.nix: Print all SSH host keys
Also, don't barf if there is no DSA key.
2015-09-24 11:49:18 +02:00
Thomas Strobel fcab752abf openvswitch module: do not fork services 2015-09-24 10:27:33 +02:00
Eelco Dolstra df665ded7e ec2-data.nix: Support ed25519 host keys 2015-09-23 00:03:33 +02:00
Jaka Hudoklin 74209a4ca8
virtualbox service: add support for vboxsf guest filesystem
Closes #9358

Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
Fix reference to bin/mount.vboxsf.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-09-21 22:32:13 +02:00
Jaka Hudoklin e0881324ac Merge pull request #9925 from oxij/nixos-cleanups-and-fixes
nixos types: cleanups and fixes
2015-09-19 00:28:49 +02:00
Jan Malakhovski a153de28bb nixos: rename some outputs for better discoverability in /nix/store 2015-09-18 19:00:20 +00:00
Jan Malakhovski 6eadb16022 nixos: fix some types 2015-09-18 18:48:50 +00:00
aszlig 03730319bd
nixos/virtualbox-image: Use 32MB of video memory.
Booting the demo/installer image won't work if the video memory is too
low. It boots into KDE, shows the background image and doesn't do
anything, according to @domenkozar.

Thanks to @domenkozar for reporting and testing this with 32MB.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-09-17 12:31:59 +02:00
aszlig 4e23f1f908
nixos/virtualbox-image: Enable PAE on 32bit.
pkgs/os-specific/linux/kernel/common-config.nix defines HIGHMEM64G on
line 441 for 32bit systems, which implies PAE.

We now creating the OVA with PAE support enabled, which fixes bootup of
the image if people are just importing it without setting PAE
explicitly.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-09-17 12:31:59 +02:00
Matthias Beyer a38d9d1ca8 nixos-container: Add bash completion for "nixos-container" command 2015-09-16 22:18:48 +02:00
Tobias Geerinckx-Rice 193319ce03 "Parallel Tools" -> Parallels Tools 2015-09-15 08:51:02 +02:00
William A. Kennington III c2e4fb29c6 nixos/lxd: Add service 2015-09-13 23:27:31 -07:00
Luca Bruno 682777ed24 nixos containers: fix system path when reloading 2015-09-11 16:59:40 +02:00
Eelco Dolstra c904dfa87c nixos-container: Fix show-host-key
We don't generate ecdsa keys by default anymore, so print ed25519
instead if available.
2015-09-08 15:57:49 +02:00
Ragnar Dahlén 9bfe92ecee docker: Minor improvements, fix failing test
- Replace usage of deprecated CLI flag `--daemon`
- Introduce `storageDriver` option for module
- Fix failing test by using `overlay` storage driver
2015-09-04 00:23:38 +01:00
Vladimír Čunát 54c4aab662 nixos: kill services.virtualboxGuest to fix #9600 2015-09-02 04:54:31 +02:00
Jaka Hudoklin be1d6923a8 Merge pull request #9528 from offlinehacker/nixos/openvswitch/startup_fix
openvswitch service: fix ipsec startup order
2015-08-29 19:19:56 +02:00
Jaka Hudoklin 29c0262708 openvswitch service: fix ipsec startup order 2015-08-29 18:21:43 +02:00
Boris Sukholitko ae80c3e7bc containers: fix interfaces option bugs
The default should be [], no need to check it for INTERFACES
variable.
2015-08-26 22:11:12 +03:00
Boris Sukholitko 77c49d9333 containers: add interfaces config option.
It uses systemd-nspawn's --network-interface to move
existing interfaces into the container.
2015-08-22 13:03:07 +03:00
aszlig 6440e9bbfd
nixos/vbox: Move all options to virtualisation.*.
Commit 687caeb renamed services.virtualboxHost to programs.virtualbox,
but according to the discussion on the commit, it's probably a better to
put it into virtualisation.virtualbox instead.

The discussion can be found here:

https://github.com/NixOS/nixpkgs/commit/687caeb#commitcomment-12664978

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-08-13 12:28:24 +02:00
Eelco Dolstra 687caebfcb Rename services.virtualboxHost -> programs.virtualbox
VirtualBox is an application, not a system service.
2015-08-12 14:12:21 +02:00
Rob Vermaas 715e772667 Add initial Brightbox expression.
(cherry picked from commit 55d97862890350a3cc069d547114c1a880f2e583)
2015-08-08 19:50:22 +00:00
aszlig 07edb2483d
Merge branch 'vboxguest-sbin-removal'.
This removes all references to .../sbin for the guest additions and also
installs all binaries to .../bin instead (so no more .../sbin).

The main motivation for doing this is commit 98cedb3 (which
unfortunately had to be reverted in a9f2e10) and pull request #9063,
where the latter is an initial effort to move mount.vboxsf to .../bin
instead of .../sbin.

The commit I made afterwards is finishing the removal of .../sbin
entirely.
2015-08-04 04:00:09 +02:00
aszlig 6c50714222
nixos: Give virtualbox-host.nix a better location.
In 14f09e0, I've introduced the module under modules/programs, because
the legacy virtualbox.nix was also under that path. But because we
already have modules/virtualisation/virtualbox-guest.nix, it really
makes sense to put this module alongside of it as well.

This module thus has no change in functionality and I've tested
evaluation against nixos/tests/virtualbox.nix and the manual.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-08-04 03:59:52 +02:00