[RECEPTA] ZFS send via SSH i … write failed: Cannot allocate memory

System plików ZFS pod względem swoich możliwości jest niesamowity! …zwłaszcza w systemie FreeBSD, którego domyślny filesystem pozostawia dużo do życzenia. Od kiedy po raz pierwszy produkcyjnie wdrożyłem tą parkę, jestem nią zachwycony i pewnie na łamach niniejszego bloga pojawi się na ten temat nieco więcej informacji. Dzisiejszy wpis dedykuje jednak konkretnemu problemowi. Sytuacja wygląda następująco: Masz wdrożony ZFS (którym pewnie tak jak ja jesteś zachwycony) i postanawiasz skorzystać niezwykle przydatnego rozwiązania jakim jest przesłanie systemu plików przez SSH. Tworzysz pulę na zdalnym serwerze, wymieniasz klucze i wpisujesz magiczne:

# zfs send -R storage@20151104 | ssh root@10.17.1.2 " zfs recv -vFdu hermes"

… z niecierpliwością czekasz na pełen sukces, a tu nagle po chwili:

> ssh: Write failed: Cannot allocate memory


Jeżeli korzystasz z netgraph’a – np. mając uruchomiony VPN via MPD lub zbierając netflow’s  z interfejsów – to mam dla Ciebie dobrą wiadomość. Prawdopodobnie problem szybko rozwiążesz przez tuning jednej sysctl’ki. Niestety wartości tej nie można zmienić w trakcie pracy i wymagany będzie restart.

# echo 'net.graph.maxdata=4096' >> /boot/loader.conf

W przypadku serwerów na których zaobserwowałem ten problem ustawienie wartości 4096 zawsze okazywało się wystarczające. Jeżeli problem nadal występuje możesz spróbować zwiększyć wartość tego parametru jeszcze bardziej.

Autor

Rafał Wilk

Administrator systemów Unixowych z 15 letnim doświadczeniem, specjalista od FreeBSD, Windows Admin, inżynier sieci i przedsiębiorca, a prywatnie myśliwy, niedzielny gracz i tata pięcioletniej Nadii.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *