Wsparcie dla OpenVZ w PLD
Łukasz Chrustek
lukasz at chrustek.net
Sun Jan 30 13:15:44 CET 2011
Witam,
> On Sunday 30 of January 2011, Łukasz Chrustek wrote:
>> 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.
> Jeśli reszta nie przeszkadza to ją lepiej zostawić niż jeszcze bardziej
> rozjeźdzać "ścieżki" pomiędzy hostem i guestem. Im więcej wspólnego tym
> lepiej.
>> >> 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.
> Jak dasz tam echo "odpalam się" czy set -x i na tej podstawie stwierdzisz, że
> montuje w dokładnie tym miejscu to ok bo bóg wie co i w którym momencie
> jeszcze mogło proca zamontować.
To fakt, przy czym w kontenerze nie znalazłem możliwości wyplucia
komunikatów z inita (tak jak je widać przy uruchamianiu vserver). Nie
mniej jednak to i tak raczej nie będzie miało większego znaczenia w
przypadku, gdyby VSERVER 'zmergować' z OPENVZ. Jeśli dobrze
zrozumiałem, to chodziło by Ci (i gotarowi w innym wątku) mniej więcej
o coś takiego:
w functions:
if [ -z "$VSERVER" -o "$VSERVER" = "detect" ]; then
{
while read _f _ctx; do
[ "$_f" = "VxID:" -o "$_f" = "s_context:" ] && break
done </proc/self/status
} 2>/dev/null
if [ -z "$_ctx" -o "$_ctx" = "0" ]; then
VSERVER=no
+ CONTAINER=no
else
VSERVER=yes
+ CONTAINER=yes
fi
unset _f _ctx
fi
if [ -z "$OPENVZ" -o "$OPENVZ" = "detect" ]; then
if [ -f /proc/vz/version ]; then
OPENVZ=no
+ CONTAINER=no
else
OPENVZ=`cat /proc/self/status | awk '$1 == "envID:" {if ($2 != 0) {print("yes")} else {print("no")}}'`
if [ "$OPENVZ" = "" ]; then
OPENVZ=no
+ CONTAINER=no
fi
fi
fi
później wszędzie wywalamy te ify z OPENVZ i VSERVEREM (zastępując je
CONTAINER), gdzie jest wspólnie i zostawiamy (w zasadzie jeden if) z
OPENVZ, gdzie jest różnie od VSERVER ?
--
Pozdrawiam,
Łukasz Chrustek
More information about the pld-devel-pl
mailing list