Журнал LinuxFormat - перейти на главную

LXF117:network

Материал из Linuxformat
Версия от 14:30, 17 февраля 2010; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Сети Свяжем ваши Linux-ПК, и пускай они вас обслуживают

Содержание

NFS & Samba: Делим диски

Часть 4: Нужный файл всегда почему-то на другом компьютере? Мало места на нетбуке? Нейл Ботвик научит вас совместному использованию файлов.

За последние три месяца мы рассказали о web-, медиа- и почтовых серверах, которые объединяет одна черта: они предназначены для обслуживания специфиче­cкого контента (писем, web-страниц и т.п.). Поэтому сегодня мы рассмотрим кое-что другое – способ сделать любой файл доступным на других компьютерах в вашей сети. Здесь речь пойдет о сетевых файловых системах, или об «общем доступе» (термин, более привычный пользователям Windows). Существует несколько причин для доступа к вашим директориям по сети, в том числе:

  • доступ к файлам с разных компьютеров в сети;
  • создание более безопасных резервных копий, хранимых в определенных каталогах на других компьютерах;
  • освобождение памяти на ноутбуках или нетбуках, благодаря переносу больших файлов или коллекций на ваш настольный компьютер или сервер;
  • потому что вы это можете.

NFS

Сетевая файловая система (NFS) – стандарт Unix и самый простой выбор для сети, основанной не на Windows. Хотя NFS-клиент существует и для ОС от Microsoft, в смешанной сети, наверное, проще использовать Samba. NFS сейчас поставляется в двух вариантах – NFSv3 и NFSv4, они существенно различаются по функ­ционалу и конфигурации, и мы поочередно рассмотрим каждый из них.

NFSv3, вероятно, настроить проще, хотя это может быть следст­вием привычки тех из нас, кто на ней вырос, что, несомненно, объясняет ее долгожительство. Файловая система реализована в ядре Linux, и есть пакет пользовательских инструментов под названием NFS-Utils, включенный по умолчанию во многие дистрибутивы, так что вам, скорее всего, ничего не потребуется устанавливать дополнительно. Экспорт файловой системы с сервера осуществляется с помощью программы exportfs (запускаемой при загрузке), а файл ее конфигурации находится в /etc/exports. Для его редактирования и запуска exportfs вам понадобятся права суперпользователя, поэтому тут возможны два варианта: либо перейти на root, либо предварять каждую команду sudo. Пользователи Ubuntu, которым лень набирать sudo, могут зайти как суперпользователь с помощью

sudo bash

Закончив, нажмите Ctrl+D для выхода из root-оболочки. Запуск exportfs без аргументов выведет список текущих экспортируемых директорий, в котором пока ничего не отображено, поэтому откройте /etc/exports в вашем любимом редакторе и добавьте строку

/home/myuser/music 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)

Каждый экспорт определяется одной строкой, содержащей три раздела. Во-первых, это каталог для экспорта, во-вторых, IP-адреса, которым разрешается его монтировать; это, как правило, локальная сеть, но можно ввести большие ограничения для определенных экспортов. IP задаются в форме адреса / сетевой маски, как показано выше, или как адрес CIDR, например, 192.168.1.0/24. Оба эти адреса из диапазона 192.168.1.0 до 192.168.1.255. Вместо IP-адресов можно использовать имена хостов, но это имеет смысл только при экспорте каталога для использования на одном или двух компьютерах.

За диапазоном адресов в скобках следует ряд опций, описанных во врезке «Опции NFS» на соседней странице. Пробела между списком адресов и опциями быть не должно. Можно перечислить более одного диапазона адресов, каждый со своим набором опций. Так,

/home/myuser/music agrajag(rw) 192.168.1.0/255.255.255.0(ro)

дает одному компьютеру права на чтение/запись, а остальная часть сети может монтировать каталог только для чтения. После редактирования файла снова запустите exportfs. Если вы ожидали увидеть свой экспорт – извините: сначала вам придется запустить exportfs -r

Эта команда синхронизирует список экспортируемых каталогов с /etc/exports, добавляя новые позиции и убирая те, что вы удалили (или превратили в комментарий через #).

Экспорт каталога, понятно, только половина задачи: ведь надо еще как-то подключить его на других компьютерах сети. Это делается аналогично монтированию локальной файловой системы: вручную с помощью команды mount или автоматиче­cки из /etc/fstab.

mount -t nfs hostname:/home/myuser/music /mnt/music

можно набрать прямо из консоли, а следующая строка в fstab смонтирует файловую систему при загрузке:

hostname:/home/myuser/music /mnt/music nfs ro,soft 0 0

NFS 4

NFSv4 во многом работает по-другому. Она всегда использует один и тот же порт TCP, что упрощает контроль доступа через брандмауэр. Отличаются также и ее настройки в /etc/exports. В NFSv4 вы экс­портируете некую главную директорию, а ваши разделяемые ресурсы берутся из вложенных в нее каталогов. Главная директория не должна быть /, поскольку это небезопасный способ. Правильнее будет использовать /exports: так вы экспортируете /exports с ограниченным доступом, а затем /exports/user/ или /exports/music с более либеральными настройками. Это ограничивает вашу NFS-деятельность каталогом /exports и защищает остальную систему от сетевых пользователей. А что делать, если каталоги, которые вы хотите использовать, находятся не в /exports? В этом случае воспользуйтесь в mount атрибутом связывания (bind):

mkdir /exports/user
mount --bind /home/myuser /exports/user

чтобы содержимое /home/myuser стало доступно в /export/user. Это можно автоматизировать в /etc/fstab при помощи

/home/myuser /exports/user auto bind 0 0

Повторите это для любого другого экспорта, а затем задайте /etc/exportfs следующим образом:

/exports 192.168.1.0/24(rw,fsid=root,insecure,no_subtree_check,async)
/exports/user 192.168.1.0/24(ro,nohide,insecure,no_subtree_check,async)
/exports/stuff 192.168.1.0/24(rw,nohide,no_root_squash,insecure,no_subtree_check,async)

Первая строка устанавливает корневой каталог – обратите внимание на опцию fsid =root. Другие строки экспортируют индивидуальные каталоги с различными опциями. Небезопасный (insecure) способ всего лишь означает, что запросы могут исходить от любого сетевого порта. Его противоположность, secure (выбор по умолчанию) требует, чтобы все запросы приходили с порта под номером меньше 1024; на большинстве систем такие можно открыть, лишь будучи суперпользователем. Если вы монтируете ресурсы NFSv4 исключительно от имени root или через /etc/fstab, параметр insecure можно удалить.

Экспортируемые каталоги задаются относительно их общего корня; так, для /exports/stuff следует использовать mount -t nfs4 hostname:/stuff /mount/point -o options

Опции NFS

Man-страницы exportfs и NFS охватывают все опции, используемые при экспорте и монтировании. Ниже приведены ключевые настройки.

Опции экспорта

  • rw Позволяет файловой системе монтироваться для чтения/записи.
  • ro Запрещает клиентам производить изменения в файловой системе (по умолчанию).
  • sync Все запросы на запись должны сразу же выполняться (более медленный способ, но и более надежный).
  • async Запросы на запись ставятся в очередь для последующей обработки (быстрее, но больше вероятность потери данных в случае сбоя).
  • crossmnt Разрешает доступ к другим файловым системам, смонтированным внутри экс­портируемого каталога. См. также nohide.
  • no_subtree_check Запрещает некоторые проверки, поскольку они создают проблемы; слегка влияет на безопасность, но обычно это хороший выбор.
  • no_root_squash Дает суперпользователю на компьютере клиента привилегии суперпользователя на экспортированной файловой системе.
  • root_squash Удаленные суперпользователи имеют другой UID; по умолчанию, как правило, nobody.
  • anonuid Указывает UID, присвоенный в root_squash.

Опции монтирования

Они указываются в четвертом поле строки fstab.

  • hard Если время NFS-запроса истекает, клиент бесконечно повторяет попытки, пока не добьется успеха (по умолчанию).
  • soft После количе­cтва попыток, указан­ного опцией retrans, клиент сообщает об ошибке.
  • rsize Максимальный размер, в байтах, любого запроса на чтение. Кратен 1024, от 1024 до 1048576. Если сервер или клиент не могут оперировать с указанным размером, устанавливается максимальный размер, поддерживаемый обоими. Обычно это 131072.
  • wsize То же, что и rsize, но для запросов на запись.
  • fg Если попытка монтирования не удалась, операция завершается с ошибкой (по умолчанию).
  • bg Если попытка монтирования не удалась, операция считается успешной, а попытки продолжаются в фоновом режиме. При этом удаленные директории рассматриваются как «смонтированные», даже если сеть еще не подключена, и реально монтируются, как только установится связь.

Танцуем с Samba

SMB (Server Message Block) – протокол, используемый Windows для совместного доступа к файлам и принтерам через Интернет. CIFS (Common Internet File System) представляет собой обновление для SMB, добавившее ряд функций и поддержку больших файлов. Samba – свободная реализация протоколов SMB/CIFS, применяемая на различных Unix-подобных системах.

Samba может предоставлять общий доступ к файлам и принтерам таким образом, что они будут «видны» в системах Windows. Она также предоставляет средства для доступа к файлам SMB/CIFS с других компьютеров, будь на них запущена Samba или Windows. Если все, что надо сделать – это подмонтировать каталог Windows-компьютера, понадобится только пакет клиента: ядро Linux содержит драйверы файловой системы, и нужно лишь

Персональные инструменты
купить
подписаться
Яндекс.Метрика