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