docs:vserver
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| docs:vserver [2013-11-26 10:30] – arekm | docs:vserver [2015-10-05 15:07] (current) – syn on glen | ||
|---|---|---|---|
| Line 15: | Line 15: | ||
| ===== Installing Vserver host on PLD Linux ===== | ===== Installing Vserver host on PLD Linux ===== | ||
| - | vserver support is included in PLD Linux main kernels, so you can just install kernel package | + | Ensure |
| - | + | ||
| - | < | + | |
| - | # poldek -u kernel | + | |
| - | </ | + | |
| - | + | ||
| - | or alternatively, | + | |
| - | < | + | |
| - | # poldek -u kernel-longterm | + | |
| - | </ | + | |
| + | You can check this from kernel config: | ||
| + | < | ||
| + | # modprobe configs | ||
| + | # zgrep CONFIG_VSERVER / | ||
| + | CONFIG_VSERVER=y | ||
| + | </ | ||
| ===== Installing guest PLD Linux Vserver ===== | ===== Installing guest PLD Linux Vserver ===== | ||
| Line 65: | Line 62: | ||
| If you need to use another combination, | If you need to use another combination, | ||
| - | * pld-ac - [[:AcInfo|PLD 2.0 (Ac)]] | + | * pld-ac - [[:ac|PLD 2.0 (Ac)]] |
| - | * pld-th - [[:ThInfo|PLD 3.0 (Th)]] | + | * pld-th - [[:th|PLD 3.0 (Th)]] |
| You may choose one using '' | You may choose one using '' | ||
| Line 579: | Line 576: | ||
| ==== Running 32 bit vserver on an 64 bit host ==== | ==== Running 32 bit vserver on an 64 bit host ==== | ||
| - | With recent PLD util-vserver package you can create 32-bit guest systems inside a 64-bit host. First you need to prepare a new distribution definition skeleton: | ||
| + | With recent [[package> | ||
| + | To specify arch during guest creation, use '' | ||
| - | < | + | < |
| </ | </ | ||
| - | Then copy your repository configuration to ''/ | ||
| - | + | If you need to set '' | |
| - | + | < | |
| - | < | + | # echo linux_32bit >> / |
| - | </ | + | |
| - | Later to force i686 32bit use: | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | < | + | |
| # echo i686 > / | # echo i686 > / | ||
| </ | </ | ||
| - | however, you can do that at vserver build time using arguments '' | + | |
| Line 722: | Line 713: | ||
| You need '' | You need '' | ||
| + | |||
| + | ==== XFS filesystem - kernel upgrade causes xfs related oops (xfs_filestream_lookup_ag) ==== | ||
| + | |||
| + | After upgrading from 2.6-3.4 kernels (possibly other versions) to 3.18 (tested, possibly other versions) kernel ooppses | ||
| + | almost immediately after accessing some files on xfs filesystem with '' | ||
| + | (or other filestream related function). | ||
| + | |||
| + | That's because vserver patch for kernels earlier than 2.6.23 patched xfs filesystem to introduce new flag: | ||
| + | |||
| + | <file c> | ||
| + | #define XFS_XFLAG_BARRIER | ||
| + | </ | ||
| + | |||
| + | and files/dirs with such flag got saved on your filesystem. | ||
| + | |||
| + | Starting with kernel 2.6.23 kernel introduced filestreams which are using 0x00004000 bit, thus causing conflict with vserver. | ||
| + | |||
| + | <file c> | ||
| + | #define XFS_XFLAG_FILESTREAM | ||
| + | </ | ||
| + | |||
| + | Vserver stopped adding such xfs xflag in 3.13 BUT your existing filesystem can still have XFS_XFLAG_BARRIER (0x00004000) set | ||
| + | causing oops in newer kernels. | ||
| + | |||
| + | How to find out if I'm affected? | ||
| + | |||
| + | IIF you don't use filestream feature then modify http:// | ||
| + | |||
| + | <file diff> | ||
| + | diff --git a/ | ||
| + | index 4e22ecd..887512f 100644 | ||
| + | --- a/ | ||
| + | +++ b/ | ||
| + | @@ -34,19 +34,21 @@ dotime(void *ti, char *s) | ||
| + | void | ||
| + | | ||
| + | { | ||
| + | - | ||
| + | - (long long)sp-> | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | - | ||
| + | + if (sp-> | ||
| + | + | ||
| + | + (long long)sp-> | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + | ||
| + | + } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | and then run it with mounted directory of each filesystem (bstat /; bstat /home etc). It will print "ino ..." information for filestream files. | ||
| + | |||
| + | |||
| + | How to clean up? | ||
| + | |||
| + | rsync files to other partition, recreate problematic partition and then copy files back. | ||
| ===== Debian or Ubuntu guest installation ===== | ===== Debian or Ubuntu guest installation ===== | ||
| Line 1154: | Line 1219: | ||
| </ | </ | ||
| For these to work you need at least util-vserver-0.30.216-1.pre2955.3 (that .3 is important) and turn on per subsys support by doing: | For these to work you need at least util-vserver-0.30.216-1.pre2955.3 (that .3 is important) and turn on per subsys support by doing: | ||
| - | |||
| < | < | ||
| # touch / | # touch / | ||
| + | </ | ||
| + | |||
| + | ===== cgroups mountpoint ===== | ||
| + | |||
| + | if you have cgroups mounted somewhere else, you can inform vserver of that (it searching in ''/ | ||
| + | |||
| + | < | ||
| + | none / | ||
| + | </ | ||
| + | |||
| + | you need to tell vserver where it mounted: | ||
| + | < | ||
| + | # cat / | ||
| + | /dev/cgroup | ||
| </ | </ | ||
docs/vserver.1385458214.txt.gz · Last modified: 2013-11-26 10:30 by arekm