|
4. Настройка клиента NFSПервым делом вам нужно ядро с поддержкой файловой системы NFS либо вкомпилированной в ядро, либо доступной как модуль. Это настраивается до компиляции ядра. Если вы никогда не компилировали ядро, то вам может быть нужно прочитать Rernel HOWTO и выяснить как это делается. Если вы используете хороший дистрибутив (такой как RedHat) и вы никогда не экспериментировали с ядром или модулями (и таким образом разрушали его ;-), вероятно что nfs автоматически доступен для вас.
Теперь вы можете, в командной строке администратора, ввести
соответствующую команду монтирования и файловая система появится у
вас. Продолжая пример из предыдущего раздела мы хотим смонтировать
mount -o rsize=1024,wsize=1024 eris:/mn/eris/local /mnt
(Мы вернемся к опциям rsize и wsize). Файловая система сейчас
доступна в
Чтобы избавиться от файловой системы вы можете выполнить:
umount /mnt
Чтобы выполнить системное монтирование файловой системы nfs при
загрузке вам нужно отредактировать файл
# device mountpoint fs-type options dump fsckorder ... eris:/mn/eris/local /mnt nfs rsize=1024,wsize=1024 0 0 ...
Это почти все что есть. Читайте пожалуйста дальше.
4.1 Опции монтированияЗдесь даны некоторые опции, которые вы должны рассмотреть сразу добавляя их. Они управляют способом, которым клиент NFS отрабатывает падение сервера или отключение сети. Одно из свойств NFS в том, что он может изящно обрабатывать эти неполадки. Если вы правильно установите клиента. Существует два различающихся режима обработки ошибок:
Продолжая предыдущий пример, теперь в нашем файле fstab запись будет выглядеть так:
# device mountpoint fs-type options dump fsckorder ... eris:/mn/eris/local /mnt nfs rsize=1024,wsize=1024,hard,intr 0 0 ...
4.2 Оптимизация NFSОбычно, если опции rsize и wsize не заданы, то NFS будет читать и писать блоками по 4096 или 8192 байтов. Некоторые комбинации ядер Linux и сетевых карт не могут обрабатывать такие большие блоки, и это может быть неоптимально. Так что нам нужно экспериментировать и найти значения rsize и wsize, которые работают так быстро насколько это возможно. Вы можете протестировать скорость при заданных вами опциях с помощью некоторых простых комманд. Задав вышеприведенную команду монтирования и получив доступ с правом записи на диск, вы можете выполнить тестирование производительности последовательной записи:
time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
Эта команда создает 64Mb файл, заполненный нулями (этот файл должен быть достаточно большим, настолько большим, чтобы кэширование не сыграло значительную роль в производительности, используйте больший размер файла, если у вас достаточно много памяти). Проделайте эту операцию несколько раз (5-10?) и усредните полученные результаты. Полученная величина это время `прохода', т.е. величина наиболее интересующая нас в этом эксперименте. Затем вы можете измерить производительность чтения, прочитав файл обратно на свою машину:
time dd if=/mnt/testfile of=/dev/null bs=16k сделайте это также несколько раз и усредните результат. Затем отмонтируйте диск и примонтируйте заново с увеличенными значениями rsize и wsize. Они вероятно должны быть кратными 1024, и не больше чем 16384 байтов, поскольку это максимальный размер в NFS версии 2. Прямо после монтирования с увеличенными значениями перейдите в смонтированную файловую систему и выполните команду подобную ls, исследуйте файловую систему, чтобы убедиться, что все в норме. Если значения rsize/wsize слишком большие, то симптомы очень необычные и не 100%-но очевидные. Типичный симптом в неполном списке файлов при выполнении команды 'ls', и отсутствие сообщений об ошибках. Или чтение файлов загадочно срывается без сообщения об ошибке. После установления факта, что заданные значения rsize/wsize раюотают, вы можете далее продолжать тестировать производительность. различные серверные платформы вероятно имеют различные оптимальные размеры блоков. SunOS и Solaris по общему мнению довольно быстрее при размере блока равном 4096 байт, чем при других значениях.
Новые ядра Linux (с версии 1.3) выполняют предваряющее чтение для значений rsize больших или равных размеру страницы машины. На процессорах Intel размер страницы равен 4096 байтам. Предваряющее чтение значительно увеличит производительность NFS при чтении. Так что на машинах с процессором Intel вы захотите использовать значение rsize равное 4096 байтам из всех возможных.
Помните, что вам нужно отредактировать
Прием для увеличения производительности NFS при записи заключается в запрещении синхронной записи на сервер. Спецификация NFS требует, чтобы запросы NFS на запись не считались законченными до записи данных на неизменчивый носитель (обычно диск). Это ограничивает производительность записи, а асинхронная запись увеличит скорость записи по NFS. Демон nfsd для Linux никогда не делает синхронную запись, поскольку реализация файловой системы Linux сама не дает сделать это, но серверах работающих на отличных от Linux системах вы можете увеличить производительность этим способом, поместив в ваш файл exports:
/dir -async,access=linuxbox
или что-нибудь подобное. Пожалуйста посмотрите справочную страницу exports на данной машине. Также запомните, что это увеличивает риск потери данных.
|
|||||||||||||||||
With any suggestions or questions please feel free to contact us |