Wsparcie dla OpenVZ w PLD
Łukasz Chrustek
lukasz at chrustek.net
Sun Jan 30 12:52:39 CET 2011
Witam,
> On Sunday 30 of January 2011, Łukasz Chrustek wrote:
>> Witam,
>>
>> > Czyli co konkretnie z tym procem? Bez konkretów to się nic zmienić nie da
>>
>> W przypadku VSERVER proc nie jest montowany, w przypadku OPENVZ proc
>> jest potrzebny. Chodzi dokładnie o ten kawałek w rc.sysinit (jedyna
>> różnica między OPENVZ a VSERVER):
>>
>> if is_yes "$OPENVZ"; then
>> mount -n -o gid=17 -t proc /proc /proc
>> fi
> Standardowe montowanie proca takie jak jest na zwykłym systemie nie wystarczy?
Wg mnie wystarczy, tylko ponższa linijka wyłącza nie tylko montowanie
proca, a w zasadzie tylko ten proc jest potrzebny dla openvz.
>> if ! is_yes "$VSERVER" && ! is_yes "$OPENVZ" ; then
> To jest błędne. Na normalnym systemie też proc nie zamontowało by.
> Wystarczy zostawić if ! is_yes "$VSERVER" tak jak było IMO.
I właśnie tutaj albo czegoś nie wiem, albo nie rozumiem, ale wg mnie
się montuje. Używam tej łatki na systemie nadrzędnym (hoście) i w
kontenerze, zmienna OPENVZ wygląda na hoscie tak:
[root w virtuoz-backup-krk1 ~]# if [ -z "$OPENVZ" -o "$OPENVZ" = "detect" ]; then
then> if [ -f /proc/vz/version ]; then
then then> OPENVZ=no
then then> else
then else> OPENVZ=`cat /proc/self/status | awk '$1 == "envID:" {if ($2 != 0) {print("yes")} else {print("no")}}'`
then else> if [ "$OPENVZ" = "" ]; then
then else then> OPENVZ=no
then else then> fi
then else> fi
then> fi
[root w virtuoz-backup-krk1 ~]# echo $OPENVZ
no
[root w virtuoz-backup-krk1 ~]# mount | grep proc
none on /proc type proc (rw,gid=17)
kontener:
[root w ti ~]# if [ -z "$OPENVZ" -o "$OPENVZ" = "detect" ]; then
then> if [ -f /proc/vz/version ]; then
then then> OPENVZ=no
then then> else
then else> OPENVZ=`cat /proc/self/status | awk '$1 == "envID:" {if ($2 != 0) {print("yes")} else {print("no")}}'`
then else> if [ "$OPENVZ" = "" ]; then
then else then> OPENVZ=no
then else then> fi
then else> fi
then> fi
[root w ti ~]# echo $OPENVZ
yes
[root w ti ~]# mount | grep proc
proc on /proc type proc (rw,relatime)
[root w ti ~]#
> Proponował bym tak:
> - vserver, openvz czy linux containers - wszystkie ustawiają CONTAINER=yes i
> każdy odpowiednio swoje czyli np. VSERVER, OPENVZ, LINUXCONTAINER=yes.
> Wtedy wspólne fragmenty kodu będą miały tylko if $CONTAINER. Specyficzne po
> dany rodzaj jak np. proc będą miały if ! is_yes "$VSERVER" czy if $OPENVZ itd.
To muszę jeszcze przetrawić, wygląda faktycznie rozsądniej.
--
Pozdrawiam,
brushek
More information about the pld-devel-pl
mailing list