Почему я начал испытывать нехватку отдельного хранилища данных? А вот почему. База писем у меня давно превысила 3 гигабайта; основная рабочая папка с документами, которую приходится архивировать на второй жесткий диск ежедневно (а то и чаще) - 4 гигабайта; основной архив фотографий и прочих изображений - 25 гигабайт (и это при том, что я регулярно избавляюсь от мусора). К тому же есть много мелких тематических папочек, которые используются редко, но потеря данных в которых означала бы катастрофу даже больших масштабов, чем потеря основной папки с документами.
Конечно, существует множество простых решений по архивированию данных в рамках DAS. RAID-1 для надежности или второй жесткий диск, периодический сброс на оптические носители (ага, на данный момент число DVD со сжатым архивом у меня лично составляет 16 штук. Попробуйте одни только инкрементные архивы, что создает Acronis, регулярно туда записывать - гарантирую стойкое отвращение к оптике всерьез и надолго). То есть нужно внешнее хранилище данных, желательно с быстрым доступом, максимальной надежностью, и такое, чтобы надолго забыть про ограничения по объему.
Когда-то самым распространенным решением был файл-сервер в домашней сети. Умельцы приспосабливали под него старые компьютеры, от файл-сервера ведь требуется только одно: быстро читать и писать данные, а производительность системы по большому счету не важна. Но обеспечение надежности в такой системе заставит и репу как следует почесать, и кошелек перетряхнуть: для старого компьютера потребуется как минимум RAID-контроллер, что всегда обходилось недешево - и по деньгам, и по затраченным усилиям. Да и сочетание RAID + Windows (даже XP) звучит не слишком обнадеживающе.
Тут-то и всплывают NAS - Network Attached Storage, сетевые хранилища данных. Собственно, NAS - это в основе своей тот же файл-сервер, только лишенный наворотов, характерных для современных ОС, в первую очередь - привычного оконного интерфейса, поддержки видеоускорителей, мышей-клавиатур, системы управления запуском приложений и прочего, и оптимизированный для дисковых операций. NAS подсоединяется к домашней или офисной сети (даже если она состоит из одного-единственного компьютера) по интерфейсу Ethernet. Причем любой NAS одинаково доступен в любой ОС, включая и Windows, и Mac OS, и даже экзотические версии Unix, ибо управляется через браузер, а как он там устроен внутри - никого не волнует (см. врезку).
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.
Есть и другие подобные протоколы (например, AFP для Mac OS), и все они, как правило, поддерживаются современными NAS.
ЖЕЛЕЗНЫЙ ПОТОК: Железный поток
Автор: Артем Захаров
Компания Stealth Computer, специализирующаяся на промышленных системах, представила компактный ПК LPC-650. Девайс хоть и не поражает дизайном, способен заткнуть за пояс многих собратьев, занимающих куда более просторные "хоромы". Для выполнения поставленной задачи - создать мощную систему в миниатюрном корпусе - конструкторы прибегли к ноутбучным компонентам: здесь установлен 2,5-дюймовый жесткий диск (опционально может быть заменен на SSD) и планки памяти SO-DIMM. Новинка оснащается процессором Core 2 Duo с частотой от 2,4 ГГц. Имеются все необходимые интерфейсы: гигабитный Ethernet, четыре USB-разъема, уже подзабытый COM, пара VGA-выходов и невесть как затесавшийся сюда HDMI-порт; есть и встроенный WiFi-модуль. Цена Stealth LPC-650 в базовой комплектации составляет около 1600 долларов - что ж, устройства, нацеленные на корпоративный рынок, никогда не отличались дешевизной.