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)

Cookies allow us to offer our services. By using our services, you accept our use of cookies.  Accept  More information