Для тех, кто работает с проектом на удаленном сервере, наверняка важна комфортность этой работы, особенно если используется IDE. В моем случае IDE NetBeans. У этой иде есть особенность, она сканирует проект при открытии, а при открытии большого удаленного проекта это сканирование может происходить и 30 минут. Во время сканирования иде превращается в тормозящий тектовый редактор, невозможно перейти к ф-ии по ctrl и вообще ничего, кроме написания кода. Да и то файлик может сохраняться долго.
Для монтирования удаленной системы раньше я использовал sshfs. Описывал в этом посте.
Преимущества:
+ защищенное соединение, запрашивает пароль
+ возможность автомонтирования
+ не плохая скорость доступа..
Недостатки:
– все же не достаточная скорость доступа
– соединение часто отваливается (по таймауту, неактивности или отвалу инета).
В итоге мне приходилось часто открывать проект заново и ждать пока он пересканируется >_<.
Позже я услышал о NFS – Network File System. По сути это как подключение сетевого диска. Для развертывания необходима установка серверного пакета на сервере:
1 2 3 |
$sudo apt-get install nfs-kernel-server nfs-common portmap |
и клиентского на своей машине:
1 2 3 |
$sudo apt-get install nfs-common portmap |
*portmap может быть заменен на rpcbind
Далее прописать папку и ip которому открыт доступ в
1 2 3 |
$sudo nano /etc/exports |
Строчка настройки выглядит примерно так:
1 2 3 |
/data 192.168.1.1(rw,no_root_squash,async) |
или можно указать диапазон или * для всех.
1 2 3 |
/data 192.168.1.1./24(rw,no_root_squash,sync) |
Доступные опции:
ro: Только на чтение, стоит по умолчанию
rw: Доступна запись
no_root_squash: ограничивать ли рута. если не установлена эта опция, то доступ к файлам идет от пользователя nobody. если опция установлена и на клиентской машине у вас пользователь с уровнем доступа root, то он будет как бы root на серверной папке.
no_subtree_check: проверять или нет поддиректории. если открыта только одна папка и нет подпапок, то включение этой опции ускорит запросы
sync: по умолчанию asynk. включение synk более безопасно, если вдруг соединение оборвется или сервер перезагрузится, то данные в редактируемом файле не потеряются. asynk быстрее.
После настройки надо перезапустить сервер:
1 2 3 |
$sudo /etc/init.d/nfs-kernel-server restart |
Хотя можно применять настройки после изменений так:
1 2 3 |
$sudo exportfs -a |
Для подключения папки на клиентской машине произвести описанную выше установку, далее просто:
1 2 3 |
mount ip:/home ~/mnt/srv |
Таким образом я замонтировал открытую папку /home с сервера с ip в свою домашнюю папку /mnt/srv.
Можно настроить монтирование в fstab
1 2 3 4 5 6 |
$sudo nano /etc/fstab и в конце дописываем следующую строку, например: 192.168.1.1:/data ~/data nfs rw,hard,intr 0 0 |
Тогда подключить можно
1 2 3 |
$sudo mount ~/data |
NFS
Преимущества:
+ перманентное соединение. разрывы гораздо реже (не было уже 2 дня)
+ скорость доступа. по моему проект подключенный так отсканировался быстрее, так же файлы сохраняются без задержек
Недостатки:
– безопасность. (доступ указывается для ИП, пароль не запрашивается)