ext4 должен быть устойчивым даже к отключению. Однако для этого требуется, чтобы подсистема хранения не теряла зафиксированных операций записи.
Во-первых, убедитесь, что вы не монтируете с барьером = 0
/ nobarrier
. Это часто повышает производительность за счет повреждения, если не будет выполнено надлежащее завершение работы. Также проверьте журналы ядра, чтобы убедиться, что барьеры не отключаются ext4, потому что что-то в стеке их не поддерживает.
Следующее, что нужно попробовать, по крайней мере, на магнитных (не SSD) дисках, - это отключить кэш записи на диск. Иногда диски лгут о том, когда они на самом деле записали данные на пластины - это может улучшить производительность (если не отключится питание). Обычно это можно сделать с помощью hdparm -W0
(для IDE / SATA) или sdparm --clear = WCE
(для SCSI / SAS). Их может потребоваться добавить в сценарии загрузки, особенно с SATA, он может быть сброшен до значений по умолчанию при выключении питания.
Существует (довольно старый) скрипт для подтверждения того, что кэширование записи не теряет данные; см. сообщение в блоге diskchecker.pl Брэда Фитцпатрика , чтобы узнать о сценарии и о том, как его использовать.
Если вы используете SSD и видите проблему, возможно, вам, к сожалению, просто нужно найти другие диски.
Я тестировал эту проблему на CentOS 7. Когда вы сталкиваетесь с такой проблемой, вам нужно копать глубже.
Проблема:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
относится к брандмауэру. Команда showmount -e IP_server
показывает все монтирования, доступные на сервере. Эта команда работает нормально, но вы должны быть осторожны, какой порт открывать. Он не проходит через брандмауэр, если открыт только порт 2049
. Если брандмауэр на сервере NFS настроен так, чтобы пропускать трафик NFS, он все равно будет блокировать команду showmount
. Чтобы проверить, отключите ли вы брандмауэр на сервере, вы должны избавиться от этой проблемы.
Значит, эти порты должны быть открыты на сервере:
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=2049/udp
firewall-cmd --reload
Дополнительный тестовый порт 2049/NFS на доступность.
semanage port -l | grep 2049
-возвращает контекст SELinux и имя службы netstat -tulpen | grep 2049