linux
Xen update
I found a machine which is not so ancient and did some tests with Xen on it.
Kernels
First was some tests with different Linux kernels and hypervisors (3.2 and 3.3). I have to say the overall compatibility got better. As unpriviledged domain (DomU) only one of the kernels failed, the one from Etch (2.6.18-6-xen-686) on the x86_64 hypervisor because of missing setup code.
For the operation as priviledged domain (Dom0) it looks not so good. The 2.6.18 from Xen 3.1 works mostly, the Lenny-targeted 2.6.26 is a little bit picky about the hardware and seems to work better in the 64bit variant, the 2.6.18 from 3.3 is old but rock-stable.
Stub domain
Xen 3.3 adds the possibility to move a the qemu which provides the emulated hardware for full virtualized domains in its own (paravirtualized) domain. The documentation is not really complete and the whole thing rather fragile. Error messages from the emulation domain are swallowed and depending on the config it also likes to crash.
It wants a new service, a filesystem backend, which is implemented in a root process in the dom0, even if it is not needed for operation. This service is not configurable, exports anything in /exports and allows writing, the code have similar quality then qemu.
How to clean filesystem namespaces
Dear lazyweb, use the following code to clean out a filesystem namespace on linux:
mount ("root", "root", NULL, MS_BIND, NULL);
pivot_root ("root", "root/tmp");
chdir ("/");
umount2 ("/tmp", 2);
mount ("none", "/proc", "proc", 0, NULL);
linux-image-2.6.23-rc4-xen-686
Xen support finally landed in upstream Linux. Okay, it is rather limited yet, but usable.
It supports the following:
- Unprivileged domain (domU).
- x86_32 (i386 without PAE) and x86_32p (i386 with PAE).
- Console.
- netfront and blkfront.
Changes to the old Xen patch:
- Block devices does not support takeover of hdXY and sdXY. Use xvcX (xvca, xvcb, ...) as device names.
- Console is hvc0. You must supply console=hvc0 at the command line. (Use the extra definition in the Xen domain config file.)
Yet missing things:
- Suspend, resume (also makes migration impossible).
- Ballooning.
- x86_64. Xen upstream currently waits for an unified x86 tree.
- Privileged domain (dom0).
- netback, blkback, pciback and pcifront.
iSCSI tested faster than ibm virtual SCSI
The linux kernel includes a SCSI target infrastructure since 2.6.20. Most of the code is located in the userspace and supports iSCSI, ibm i/pSeries virtual SCSI and Xen SCSIback.
To work properly it needs a bunch of patches on top of 2.6.21-rc.
After I got it working I did some tests with bonnie. First the target:
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
2G 32124 17 18063 6 45815 4 324.6 0
Now with the vSCSI initiator:
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
2G 18513 9 16208 5 34003 3 221.4 0
And the iSCSI initiator:
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
2G 31631 14 12809 4 39241 5 306.3 1
As this tests was done on one OpenPower machine, all transfers uses DMA between the two systems.
The vscsi case is currently limited to 128KiB per request, maybe this is a problem.
Not so funny kernel build failures
It happened again. The linux-2.6 2.6.20-1 release failed for arches which we don't build snapshots for. This means that none of them was ever built in the time after I commited the whole stuff.
As this happens over and over again I consider this a real problem now. So the following arches needs new debian-kernel maintainers: alpha, hppa, and mips.
System zu langsam
Nein, man sollte sich nicht wundern, dass das System sich so träge anfühlt, wenn /proc/mdstat folgendes zeigt:
md0 : active raid5 sdb[0] sdd[2] sdc[1]
67108608 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]
[==========>..........] resync = 53.2% (17870972/33554304) finish=7.3min speed=35319K/sec
