Как смоделировать зависшую файловую систему? - PullRequest
0 голосов
/ 30 октября 2019

Я хотел бы проверить поведение приложения при попытке чтения из плохой файловой системы (особенно: зависание NFS-монтирования, где чтение может просто зависнуть навсегда, если его не проверять).

Есть ли простой способлокально воспроизвести это поведение? Было бы здорово, если бы я мог просто принудительно смонтировать то, что не существует, или смонтировать локальный RAM-диск и повредить его, или заблокировать его от чтения таким образом, чтобы оно зависало, а не выдавало ошибку, или что-то в этом роде. Это должно быть что-то, что я мог бы воспроизвести в рамках небольшого интеграционного теста.

1 Ответ

0 голосов
/ 02 ноября 2019
  1. создать каталог для экспорта: mkdir /tmp/nfs
  2. настроить каталог, добавив строку /tmp/nfs *(sync,sync,ro,no_subtree_check,fsid=0468884e-fdab-11e9-8ee6-4b007bc13e45) в /etc/exports
  3. sudo exportfs -ra
  4. убедитесь, что сервер NFS работает.
  5. создайте каталог для монтирования клиента: mkdir /tmp/hang
  6. mount -t nfs -o vers=3 localhost:/tmp/nfs /tmp/hang
  7. run ls /tmp/hang - все в порядке.
  8. выключить сервер NFS.
  9. запустить ls /tmp/hang - он зависнет.
  10. снова запустить сервер NFS.
  11. * lsкоманда отпустит.

Альтернативой выключению NFS-сервера является блокировка клиента с помощью iptables. Преимущество этого заключается в том, что вы можете настроить несколько сетевых интерфейсов, подключить несколько клиентов через разные интерфейсы, а затем выборочно заблокировать клиентов, блокируя сетевые интерфейсы с помощью iptables.

...