OmniOS - Rozmiar swap

Zwiększanie rozmiaru przestrzeni swap

Co możemy zrobić w przypadku, gdy wybrany podczas instalacji rozmiar przestrzeni swap okaże się zbyt mały dla realizacji późniejszych zadań systemu? Rozwiązanie tego problemu w przypadku systemu plików ZFS jest bardzo proste i sprowadza się do dwóch wariantów. Pierwszy z nich polega na zwiększeniu zadeklarowanej w trakcie instalacji przestrzeni swap, lecz wymaga restartu systemu. Drugi sposób polega na dodaniu kolejnej, nowej przestrzeni swap do już istniejącej, i można to zrobić dynamicznie, w trakcie działania systemu.

Na początek zobaczmy ile mamy dostępnej przestrzeni swap:

root@test-builder:~# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 172,2         8  4194296  4194296
root@test-builder:~# _

W systemie plików ZFS obszar ten definiowany jest następująco:

root@test-builder:~# zfs list |grep swap
rpool/swap                      2,06G  43,6G  2,02G  -
root@test-builder:~# _

Tak więc w pierwszym wariancie rozwiązanie sprowadza się do zwiększenia przestrzeni zdefiniowanej dla powyższego obszaru.

root@test-builder:~# zfs get volsize rpool/swap
NAME        PROPERTY  VALUE    SOURCE
rpool/swap  volsize   2G       local
root@test-builder:~# zfs set volsize=6g rpool/swap
root@test-builder:~# zfs get volsize rpool/swap
NAME        PROPERTY  VALUE    SOURCE
rpool/swap  volsize   6G       local
root@test-builder:~# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 172,2         8  4194296  4194296
root@test-builder:~# _

Jednak jak widać, zwiększenie dostępnej dla systemu przestrzeni swap wymaga albo restartu systemu albo usunięcie i ponowne dodanie zdefiniowanej powyżej przestrzeni:

root@test-builder:~# swap -d /dev/zvol/dsk/rpool/swap
root@test-builder:~# swap -l
No swap devices configured
root@test-builder:~# swap -a /dev/zvol/dsk/rpool/swap
root@test-builder:~# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 172,2         8 12582904 12582904
root@test-builder:~# _

Zaprezentowane rozwiązanie ma dwa ograniczenia: po pierwsze, rzadko kiedy w środowisku produkcyjnym możemy pozwolić sobie na restart serwera; po drugie, usunięcie przestrzeni swap i ponowne jej dodanie możemy wykonać tylko wtedy, gdy nie jest ona używana, a zwykle gdy to musimy zrobić jej użycie bliskie jest 100%.
W takiej sytuacji pozostaje nam druga możliwość:

root@test-builder:~# zfs create -V 6G tank/swap
root@test-builder:~# swap -a /dev/zvol/dsk/tank/swap 
root@test-builder:~# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 172,2         8 12582904 12582904
/dev/zvol/dsk/tank/swap 172,4         8 12582904 12582904
root@test-builder:~# _

Jak widać powyżej, można stworzyć kolejną przestrzeń swap o dowolnym potrzebnym rozmiarze i dodać dynamicznie do już istniejącej przestrzeni.
Jeżeli chcemy, by nasz nowy swap był automatycznie rejestrowany w systemie po restarcie, to należy dodać wpis do /etc/vfstab:

root@test-builder:~# echo "/dev/zvol/dsk/tank/swap - - swap - no -" >> /etc/vfstab
root@test-builder:~# _

Skomentuj ten artykuł
 Odśiweż, jeśli nie widzisz poprawnie kodu
wpisz kod weryfikacyjny(pola wymagane)

{cbcookies/messageBy using this site you accept the use of cookies for analysis, customized content and advertising. Korzystając z tej strony, musisz zaakceptować korzystanie z plików cookie do analizy, dostosowanych treści i reklam.}  Accept  More information