Надежное хранилище с drbd9 и proxmox (часть 1: nfs)

Содержание:

Установка и настройка NFS сервера и клиента в Ubuntu

дело было вечером – делать было нечего (точнее дело было ночью)

в общем что то я начал подозревать что юзать самбу на линукс машинах есть не очень корректно по сему решил поднять на домашнем сервере вместо самбы (а точнее в дополнение к ней) NFS

конфигурация такова

сервер – ubuntu 9.04 desktop там торрнент клиент крутиться ну и немного софта для просмотра видео ну и много HDD

рабочая станция тут уже как месяц тоже ubuntu 9.04 desktop естественно немного винчестера и опять торрнет только уже для часто меняющихся загрузок ну и торрент естественно скачивает на серверную машину

сеть – 100 мегабит инет и 1G локально (сервер-раб.станции)

немного погуглив нашел немного (гуглил русский сегмент инета), но того что нашел я посчитал будет предостаточно. Так что начинаем (статья писалась в процессе установки-настройки)

СЕРВЕР

Устанавливаем NFS-сервер:

sudo apt-get install nfs-kernel-server nfs-common portmap

Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports:

sudo nano -w /etc/exports

В приведенном ниже примере я выделил директорию /data (директория с данными на сервере) в совместное пользование всем компьютерам с IP – 192.168.0.1 – 192.168.3.255 с правами чтения и записи:

/hard 192.168.0.1/22(rw,no_root_squash,async)

Или еще пример:

/home/samnick/ 192.168.2.96(ro,async)

домашняя директория пользователя samnick стала доступной в режиме только чтение для компьютера с IP 192.168.2.96. Все остальные компьютеры сети к этому разделу доступа не имеют.

Опции:

  • ro – права только на чтение. Можно и не указывать, так как она установлена по умолчанию.
  • rw – дает клиентам право на запись.
  • no_root_squash – по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать.
  • noaccess – запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.

О других опция можно почитать тут:

http://www.toucheatout.net/informatics/linux/nfs-tuning-options

про /22 (маску подсети) читаем тут:

http://ru.wikipedia.org/wiki/CIDR сам оч чясто смотрю (запомнить никак не могу)

Теперь нужно перезапустить дабы все заработало nfs-kernel-server:

sudo /etc/init.d/nfs-kernel-server restart

в дальнейшем при изменении конфигурационного файла будет достаточно перечитать конфигурационный файл тут все просто

sudo exportfs -a

все радуемся сервер подняли и настроили теперь беремся за клиента

КЛИЕНТ

Установка и настройка NFS-клиента.

Установка:

sudo apt-get install portmap nfs-common

Монтирование:

создаем точку монтирования (папку к которой будет монтирована папка с сервера)

я лично предпочитаю все монтировать в каталог /media/

cd /media

так как каталог системный то нам необходимы права root`a

sudo mkdir hard

способов монтирования несколько одн это постоянно вручную (то есть после каждой перезагрузки) а второй это автоматически

первый вариант я допишу чуть позднее

вариант второй

Монтирование NFS ресурса автоматически

для этого отредактируем файл /etc/fstab (в нем описаны файловые системы, что куда и как монтировать)

sudo nano -w /etc/fstab

для прописывания нашего сетевого диска просто допишем в конец файла наши данные

192.168.2.98:/hard /media/hard nfs rw,hard,intr 0

  • 192.168.2.98:/hard -адрес_вашего_сервера:папака_на_вашем_сервере
  • /media/hard -/папка_куда_будем_монтировать
  • nfs rw,hard,intr 0 -опции монтирования (в подробности вдаваться не будем)

подробнее про монтирование можно прочитать тут http://rus-linux.net/lib.php?name=MyLDP/file-sys/fstab.html

после того как записали свои данные сохраняем файл конфигурации монтируем нашу NFS

sudo mount /media/hard

все готово теперь мы можем лицезреть наш диск в проводнике как простой физический диск

более глубже почитать про NFS можно тут http://www.linuxshare.ru/docs/HOWTO/NFS-HOWTO.html

материалы:

Статью написал samnick a.k.a Roman Paschenko

Что такое NFS v4?

Версия 4, разработанная под влиянием Эндрской файловой системы (AFS) и блока сообщений сервера (SMB, также называемая CIFS), включает в себя повышение производительности, обеспечивает лучшую безопасность и вводит протокол с соблюдением установленных условий.

Версия 4 стала первым дистрибутивом, разработанным в Целевой группе Internet Engineering Task Force (IETF) после того, как Sun Microsystems передала разработку протоколов сторонним специалистам.

NFS версия 4.1 направлена ​​на предоставление поддержки протокола для использования кластерных развертываний серверов, включая возможность предоставления масштабируемого параллельного доступа к файлам, распределенным между несколькими серверами (расширение pNFS).

Новейший протокол файловой системы — NFS 4.2 (RFC 7862) – был официально выпущен в ноябре 2016 года.

Игры по категориям:

По жанру:

хоррор
339

шутер
779

экшен
2220

приключения
1486

выживание
449

открытый мир
802

рпг
667

квест
91

головоломка
348

бродилки
485

боевик
453

платформер
279

аркада
1020

драки
123

стратегия
839

комиксы
82

стелс
142

для детей
114

инди
1396

бизнес
89

строительство
374

симулятор
849

градостроительный симулятор
114

тайм менеджмент
118

спорт
254

авиасимулятор
38

песочница
203

симулятор жизни
25

гоночный симулятор
124

гонки
311

развивающие
54

hack and slash
39

мморпг
203

роуглайк
109

MOBA
44

защита замка
70

обучающие
23

симулятор бога
29

жизнь
28

познавательные
17

По типу:

зомби-апокалипсис
67

треш
207

шутер от третьего лица
180

экзотическая местность
417

город
494

фэнтези
838

средневековье
182

наше время
578

открытая местность
691

шутер от первого лица
389

фантастика
539

робототехника
175

научная фантастика
439

прыжки
88

греция
15

слэшер
140

техника
587

логическая
64

арена
290

тактическая
725

онлайн игра
584

безумие
83

дикий запад
29

вестерн
42

готические
44

файтинг
146

мультяшная
363

юмор
268

война
428

военная
583

космическая фантастика
174

футуристика
141

вторжение
51

спасение человечества
51

рыцари
79

историческая
191

пошаговая
278

пошаговая стратегия
205

машины
252

криминал
60

мистика
158

тактический шутер
98

супергерои
76

непрямой контроль
57

баскетбол
36

космос
139

мультфильм
90

стимпанк
58

альтернативная история
72

танки
72

вторая мировая война
132

стратегия в реальном времени
284

киберпанк
64

корабли
71

самолеты
70

рим
23

тайна
248

пустыня
113

эволюция
35

экономическая стратегия
132

машинки
51

зимние
53

автосимулятор
130

с подземельями
92

футбол
56

постапокалипсис
110

сбивание соперников
90

паркур
30

крутые машины
82

тюнинг
50

стритрейсинг
33

путешествия во времени
33

боевые искусства
58

апокалипсис
22

погоня
48

бокс
21

реслинг
19

WWE
24

пираты
54

египет
15

терроризм
25

картинг
10

ралли
29

лего
31

мотоциклы
51

хокей
26

битвы машин
39

джипы 4х4
23

F1
24

болид
26

японская мифология
23

доисторические
29

гольф
16

охота
25

По платформам:

iOS
314

PlayStation 2
266

PlayStation 3
627

Wii
141

на ПК
3844

Xbox 360
655

PlayStation 4
677

Xbox One
535

MacOS
408

WiiU
84

Nintendo DS
86

Xbox
186

PlayStation Vita
141

PlayStation Portable
117

VR
137

NFS v3

Первое предложение по разработке NFS версии 3 в Sun Microsystems было озвучено вскоре после выпуска второго дистрибутива. Главной мотивацией была попытка смягчить проблему производительности синхронной записи. К июлю 1992 года практические доработки позволили решить многие недостатки NFS версии 2, оставив при этом лишь недостаточную поддержку файлов (64-разрядные размеры и смещения файлов).

Версия 3 добавила в себя следующее:

  • поддержку 64-битных размеров и смещений файлов для обработки данных размером более 2 гигабайт (ГБ);
  • поддержку асинхронной записи на сервере для повышения производительности;
  • дополнительные атрибуты файлов во многих ответах, позволяющие избежать необходимости их повторного извлечения;
  • операцию READDIRPLUS для получения данных и атрибутов вместе с именами файлов при сканировании каталога;
  • многие другие улучшения.

Во время введения версии 3 поддержка TCP как протокола транспортного уровня начала увеличиваться. Использование TCP в качестве средства передачи данных, выполненного с использованием NFS через WAN, стало позволять передавать большие размеры файлов для просмотра и записи. Благодаря этому разработчики смогли преодолеть пределы ограничений в 8 КБ, налагаемые протоколом пользовательских дейтаграмм (UDP).

Архитектура NFS

NFS использует стандартную архитектурную модель «клиент-сервер» (как показано на рисунке 2). Сервер отвечает за реализацию файловой системы совместного доступа и хранилища, к которому подключаются клиенты. Клиент реализует пользовательский интерфейс к общей файловой системе, смонтированной внутри локального файлового пространства клиента.

Рисунок 2. Реализация модели «клиент-сервер» в архитектуре NFS

В ОС Linux виртуальный коммутатор файловой системы (virtual file system switch — VFS) предоставляет средства для одновременной поддержки на одном хосте нескольких файловых систем (например, файловой системы ISO 9660 на CD-ROM и файловой системы ext3fs на локальном жестком диске). Виртуальный коммутатор определяет, к какому накопителю выполняется запрос, и, следовательно, какая файловая система должна использоваться для обработки запроса. Поэтому NFS обладает такой же совместимостью, как и другие файловые системы, применяющиеся в Linux. Единственное отличие NFS состоит в том, что запросы ввода/вывода вместо локальной обработки на хосте могут быть направлены для выполнения в сеть.

VFS определяет, что полученный запрос относится к NFS, и передает его в обработчик NFS, находящийся в ядре. Обработчик NFS обрабатывает запрос ввода/вывода и транслирует его в NFS-процедуру (, , , , , и т.д.). Эти процедуры, описанные в отдельной спецификации RFC, определяют поведение протокола NFS. Необходимая процедура выбирается в зависимости от запроса и выполняется с помощью технологии RPC (вызов удаленной процедуры). Как можно понять по названию, RPC позволяет осуществлять вызовы процедур между различными системами. RPC-служба соединяет NFS-запрос с его аргументами и отправляет результат на соответствующий удаленный хост, а затем следит за получением и обработкой ответа, чтобы вернуть его инициатору запроса.

Также RPC включает в себя важный уровень XDR (external data representation – независимое представление данных), гарантирующий, что все пользователи NFS для одинаковых типов данных используют один и тот же формат. Когда некая платформа отправляет запрос, используемый ею тип данных может отличаться от типа данных, используемого на хосте, обрабатывающего этот запрос. Технология XDR берет на себя работу по преобразованию типов в стандартное представление (XDR), так что платформы, использующие разные архитектуры, могут взаимодействовать и совместно использовать файловые системы. В XDR определен битовый формат для таких типов, как , и порядок байтов для таких типов, как массивы постоянной и переменной длины. Хотя XDR в основном известна благодаря применению в NFS, это спецификация может быть полезна во всех случаях, когда приходится работать в одной среде с различными архитектурами.

После того как XDR переведет данные в стандартное представление, запрос передается по сети с помощью определенного транспортного протокола. В ранних реализациях NFS использовался протокол UDP, но сегодня для обеспечения большей надежности применяется протокол TCP.

На стороне NFS-сервера применяется схожий алгоритм. Запрос поднимается по сетевому стеку через уровень RPC/XDR (для преобразования типов данных в соответствии с архитектурой сервера) и попадает в NFS-сервер, который отвечает за обработку запроса. Там запрос передается NFS-демону для определения целевой файловой системы, которой он адресован, а затем снова поступает в VFS для обращения к этой файловой системе на локальном диске. Полностью схема этого процесса приведена на рисунке 3. При этом локальная файловая система сервера – это стандартная для Linux файловая система, например, ext4fs. По сути NFS – это не файловая система в традиционном понимании этого термина, а протокол удаленного доступа к файловым системам.

Рисунок 3. Схема взаимодействия между NFS-клиентом и NFS-сервером

Для сетей с большим временем ожидания в NFSv4 предлагается специальная составная процедура (compound procedure). Эта процедура позволяет поместить несколько RPC-вызовов внутрь одного запроса, чтобы минимизировать затраты на передачу запросов по сети. Также в этой процедуре реализован механизм callback-функций для получения ответов.

Что такое NFS и зачем это нужно

Каждый знает, что в UNIX-системах файловая система логически представляет собой набор физических файловых систем, подключенных к одной точке. Одна из самых основных прелестей такой организации, на мой взгляд, состоит в возможности динамически модифицировать структуру существующей файловой системы. Также, благодаря усилиям разработчиков, мы на сегодняшний день имеем возможность подключить ФС практически любого типа и любым удобным способом. Говоря «способом», я прежде всего хочу подчеркнуть возможность работы ядра ОС с файловыми системами посредством сетевых соединений.

Множество сетевых протоколов предоставляют нам возможность работы с удаленными файлами, будь то FTP, SMB, Telnet или SSH. Благодаря способности ядра, в конечном итоге, не зависеть от типа подключаемой ФС, мы имеем возможность при помощи программы mount подключать что угодно и как угодно.

Сегодня мне хочется рассказать об NFS — Network File System. Эта технология позволяет подключать отдельные точки ФС на удаленном компьютере к файловой системе локального компьютера. Сам протокол NFS позволяет выполнять операции с файлами достаточно быстро, безопасно и надежно. А что нам еще нужно?

Шаг 3 — Настройка экспорта NFS на хосте

Теперь рассмотрим подробнее файл конфигурации NFS и настроим общий доступ к этим ресурсам.

Откройте на хосте файл в текстовом редакторе с привилегиями root.

Файл содержит комментарии, показывающие общую структуру каждой строки конфигурации. Синтаксис выглядит следующим образом:

/etc/exports

Нам нужно создать строку для каждого каталога, к которым мы планируем предоставить общий доступ. Обязательно замените сокращение своим реальным IP-адресом:

/etc/exports

Здесь мы используем для обоих каталогов одинаковые параметры конфигурации, за исключением . Посмотрим, что означают эти опции:

  • : эта опция дает клиенту доступ к чтению и записи на соответствующем томе.
  • : эта опция принудительно заставляет NFS записывать изменения на диске, прежде чем отправлять ответ. В результате мы получаем более стабильную и согласованную среду, поскольку в ответе отражается фактическое состояние удаленного тома. Однако при этом снижается скорость операций с файлами.
  • : данная опция предотвращает проверку вложенного дерева, когда хост проверяет фактическую доступность файла в экспортированном дереве при каждом запросе. Это может вызвать много проблем в случае переименования файла, когда он открыт на клиентской системе. Проверку вложенного дерева в большинстве случаев лучше отключить.
  • : по умолчанию NFS преобразует запросы удаленного пользователя root в запросы пользователя без привилегий на сервере. Это предназначено для обеспечения безопасности, чтобы пользователь root клиентской системы не мог использовать файловую систему хоста с правами root. Опция отключает такое поведение для определенных общих ресурсов.

Когда вы закончите внесение изменений, сохраните и закройте файл. Чтобы сделать общие ресурсы доступными для настроенных клиентов, перезапустите сервер NFS с помощью следующей команды:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *