NAS хороши еще и тем, что предлагают кучу дополнительных приятностей: кто, например, мешает ввести в его состав FTP и торрент-клиентов? В результате практически все сегодняшние NAS являются "мечтой пирата": они могут в режиме 24х7, без привязки к главному компьютеру, качать заданные файлы. Причем заодно решается главная проблема файлообменных сетей: доминирование личеров - тех, кто только скачивает, но не раздает. Обычно личерами становятся не из принципа, а из нежелания загружать свой канал "лишними" соединениями; если же сетевой накопитель все равно работает сам по себе, то какая вам разница, скачается файл через два дня или через два с половиной?
Кроме того, большинство современных NAS поддерживает функции медиа-сервера, принт-сервера и, что особенно интересно, веб-сервера - то есть круглосуточно включенное хранилище данных может еще и поддерживать вашу личную страничку в Сети (правда, домашним пользователям такую роскошь придется согласовывать с провайдером). NAS позволяют настраивать в широких пределах права доступа к папкам, имеют встроенные функции автоматического бэкапа. Кроме того, сетевой накопитель, благодаря своей специализированной ОС, гораздо лучше защищен от атак злоумышленников, нежели обычный файл-сервер. Есть модели NAS, позволяющие засекретить данные от любого неавторизованного пользователя, который при входе в сеть может даже и не подозревать о существовании такого хранилища.
Пожалуй, пора отправляться в магазин. О том, что из этого может получиться, расскажу обязательно.
Обеспечение сетевого доступа к файлам - задача далеко не простая, даже если на всех подключенных устройствах используется одна и та же операционная система. Если же их несколько, вопрос удаленного да еще и совместного доступа к файлам приходится решать принципиально.
Обычная схема чтения файлов с диска, как, например, в системе FAT, когда подпрограмма чтения файла один раз читает в каталоге запись начального кластера, а затем путешествует по цепочке связанных ссылок, пока не дойдет до конца файла, здесь не подходит. Во-первых, потому, что эти операции в разных файловых системах протекают по-разному и предусмотреть все возможные сочетания файловых систем и ОС, разумеется, невозможно. Во-вторых, потому, что во время чтения сеть может сбоить, а файл между операциями может быть изменен, перенесен (весь или его часть) или даже удален, а потом вновь создан - на то и совместный доступ. Значит, надо придумать механизм, который был бы полностью независимым и от ОС, и от файловой системы, и, к примеру, от уровней RAID, и вообще от того, как там внутри чего устроено. Такой подход, в частности, позволяет производителям NAS создавать свои собственные файловые системы, оптимизированные под удаленное хранение данных[Примером может случить WAFL - файловая система от Network Appliance, в которой данные не стираются при их изменении, а изменения записываются на свободное место, при этом лишь переносится указатель со старого блока на новый. Это повышает скорость записи, облегчает архивирование и откат к старому состоянию.].
Таких механизмов существует несколько. Один из них создан компанией Sun в 1984 году, еще во времена, когда модемы на 600 бод были вершиной инженерной мысли, - это NFS (Network File System), которая, несмотря на название, по сути представляет собой не какую-то специальную файловую систему, а протокол обмена файлами, абстрагирующийся от типов файловых систем как сервера, так и клиента. NFS ориентируется, естественно, на Unix, и в ее основе лежит простая идея: каждое обращение к серверу выполняется как бы с чистого листа, без сохранения предыдущего состояния (stateless). То есть в NFS каждая операция, даже изменение одного-единственного байта, начинается с проверки существования файла, открытия его на запись/чтение и т. д. Если учесть, что NFS в Ethernet-сетях, как правило, еще и использует протокол TCP/IP с его пакетами, то накладные расходы получаются довольно значительными. Конечно, Windows тоже совместима с NFS (через MS Services for Unix - SFU).
Microsoft, конечно же, не могла удержаться, чтобы не придумать свой протокол, который поначалу (во времена DOS и Windows NT) назывался SMB, а теперь известен как CIFS (Common Internet File System - единая файловая система для Интернета). В CIFS состояние после запроса сохраняется (stateful), что в принципе должно ускорить последовательное обращение к системе, но на практике ускорение невелико, а в ряде случаев CIFS работает даже медленнее. В Unix доступ к CIFS обеспечивается через сервис Samba.