Версия 5.2 |
|||||||||||||||||||||||||||||||
|
|
Используемые сегодня Системы Хранения (такие как дисковые устройства) являются довольно "тупыми" устройствами с точки зрения пользователя и приложений. Каждая система или устройство имеет некоторое количество блоков - сегментов данных фиксированного размера, например, размером 1К (1024 байт). При соединении дискового устройства с компьютером оно может обрабатывать только очень простые запросы, такие как:
Диски могут соединяться с компьютерами при помощи интерфейсов IDE, SCSI или FDDI. Эти интерфейсы используются для отправки дискам команд и данных и для получения от диска данных и кодов выполнения команд.
Сами по себе Системы Хранения не создают никакие другие структуры, что означает что дисковое устройство не может создавать "файлы" или "файловые директории". Эти системы работают только с блоками и всё, что они могут делать - это читать и записывать эти блоки.
В каждой современной Операционной Системе (ОС) есть компонент, называемый Файловая Система. Этот компонент является частью ядра ОС и в нём реализованы такие вещи, как "файлы" и "файловые директории".
Существует много разных Файловых Систем, в них используются различные методы и алгоритмы, но некоторые основные функции имеются в большинстве Файловых Систем:Файловая Система через интерфейс диска (IDE, SCSI или любой другой) отправляет диску команду READBLOCK(123456).
Дисковое устройство отправляет информацию из указанного блока в компьютер.
Файловая Система помещает прочитанную информацию в кэш-буфер и отправляет её приложению.
Она удаляет номер блока из списка неиспользуемых блоков и добавляет его блоком номер 7 в информацию о File2 в Таблице Размещения Файлов, так что теперь File2 имеет размер 7 блоков.
Файловая Система через интерфейс диска (IDE, SCSI или любой другой) отправляет диску команду WRITEBLOCK(13477) и отправляет данные блока, которые были сгенерированны приложением.
Дисковое устройство записывает данные блока в указанной блок диска и подтверждает выполнение операции.
Файловая Система копирует данные блока в кэш-буфер.
Если любое приложение попытается прочитать блок 5 из File1 или блок 7 из File2 то Файловая Система получит информацию из кэш-буфера и не будет выполнять операцию на диске.
Все приложения, работающие в этой Операционной системе, используют единую Файловую Систему. Файловая Система гарантирует целостность данных. Если блок диска 13477 размещён для File2, то он не будет размещаться ни для какого-либо другого файла - до тех пор, пока File2 не будет удалён или не уменьшит свой размер до размера менее, чем 7 блоков.
Если компьютерам сервера необходимо использовать одни и те же данные, то может использоваться Сетевая Файловая Система (также называемая Network Attached Storage, NAS).
Сетевая Файловая Система реализуется с использованием Файлового Сервера и сети. Файловый Сервер - это обычный компьютер или специальная ОС с обычной Файловой Системой и обычными дисковыми устройствами, управляемыми этой Файловой Системой.
Сетевая Файловая Система "встраивает" часть себя внутрь ядра ОС на "клиентских" компьютерах как "подставную" Файловую Систему, ретранслирующую запросы приложения к файлам на Файловый Сервер через сеть:
В этом примере Файловая Система на Файловом Сервере обслуживает запросы нескольких приложений, запущенных на "клиентских" компьютерах сервера.
Единственная разница с одиночной ОС заключается в доставке запросов; вместо нескольких внутренних операций между приложением и Файловой Системой, работающей в составе ядра ОС, встроенная "заглушка" отправляет запросы через сеть, получает ответы и передаёт их приложению. Вся "реальная работа" (обслуживание Таблицы Размещения Файлов и кэша) выполняется на компьютере Файлового Сервера.
Так как только компьютер Файлового Сервера имеет прямой доступ к физическому диску, то все приложения, запущенные на сервере, используют одну и ту же Файловую Систему - Файловую Систему, работающую на Файловом Сервере. Эта Файловая Система гарантирует целостность данных. Если блок диска 13477 размещён для File2, то он не будет размещаться ни для какого-либо другого файла - до тех пор, пока File2 не будет удалён или не уменьшит свой размер до размера менее, чем 7 блоков.
Сеть Хранения Данных является сетью специального типа, соединяющей компьютеры и дисковые устройства, подобно тому, как SCSI кабеля соединяют дисковые устройства с компьютером.
Любой компьютер, соединённый с SAN, может отправлять дисковые команды на любое дисковое устройство, подсоединённое к SAN. На физическом уровне, SAN может быть реализован через FDDI, Ethernet или любой другой тип интерфейса.
Некоторые диски или массивы имеют "двухканальные" контроллеры SCSI и могут быть соединены с двумя компьютерами через обычные кабеля SCSI. Так как оба компьютера могут отправлять дисковые команды чтения/записи на такой общий диск, то такая конфигурация имеет такую же функциональность, как и однодисковый SAN.
SAN обеспечивает реализацию Общих Дисков, но сам по себе SAN не является Общей Файловой Системой. Если у вас есть несколько компьютеров, имеющих доступ к Общему Диску (через SAN или двухканальный SCSI) и вы попытаетесь использовать такой диск с обычной Файловой Системой, то очень быстро логическая структура диска будет нарушена.
С Общими Дисками и обычными Файловыми Системами возникают две основные проблемы:
Затем Файловая Система, работающая на этом компьютере, изменит свою Таблицу Размещения Файлов, но эти изменения не окажут никакого эффекта на Таблицы Размещения Файлов, загруженные в память других компьютеров. Если приложению, запущенному на каком-либо другом компьютере Y, потребуется увеличить размер файла, то Файловая Система, работающая на этом компьютере Y, может разместить тот же самый блок 13477 для другого файла, так как она понятия не имела о том, что этот блок уже был размещён компьютером X.
Но программа, запущенная на каком-либо другом компьютере Y, может изменить информацию в блоке 5 файла File1. Так как Файловая Система, запущенная на компьютере X, не будет знать об этом, то она продолжит использовать свой кэш, отправляя приложениям на компьютере X данные, потерявшие актуальность.
Эти проблемы делают невозможным использование Общих Дисков с обычными Файловыми Системами в качестве Общей Файловой Системы. Они могут использоваться для систем восстановления после сбоев или в других конфигурациях, где в любой момент времени диск фактически используется только одним из компьютеров. Файловая Система на компьютере Y начинает использовать Общий Диск только когда компьютер X выключен или прекратил использование Общего Диска.
Кластерные Файловые Системы - это программные продукты, предназначенные для решения проблем, упомянутых выше. Они позволяют вам строить многокомпьютерные системы с Общими Дисками, решая проблемы целостности данных.
Кластерные Файловые Системы обычно реализуются как "надстройки" на обычными Файловыми Системами. Кластерные Файловые Системы используют некое подобие межсерверной сети для передачи информации друг-другу и синхронизации своей деятельности. Межсерверные "взаимодействия" могут реализовываться как по обычным сетям Ethernet, используя тот же самый SAN, соединяющий компьютеры и диски, так и используя для "взаимодействий кластеров" специальные устройства с низкими задержками.
В этом примере Кластерная Файловая Система устанавливается на нескольких компьютерах и обслуживает запросы от приложений, запущенных на этих компьютерах.
Кластерная Файловая Система передаёт запрос обычной Файловой Системе. Она находит информацию о File2 в Таблице Размещения Файлов и определяет, что для этого файла размещено 6 блоков. Она проверяет список неиспользуемых блоков диска и находит неиспользуемый блок номер 13477. Она удаляет номер блока из списка неиспользуемых блоков и добавляет его 7-м блоком в информацию о File2 в Таблице Размещения Файлов, так что теперь File2 имеет размер 7 блоков.
Кластерная Файловая Система через межсерверную сеть уведомляет Кластерные Файловые Системы на других компьютерах об изменении Таблицы Размещения Файлов. Кластерные Файловые Системы на этих компьютерах синхронизируются и изменяют свои копии Таблиц Размещения Файлов.
Файловая Система использует интерфейс диска для отправки команды WRITEBLOCK(13477) на Общий Диск и отправляет данные блока, сгенерированные в приложении.
Дисковое устройство записывает данные блока в указанной блок диска и подтверждает выполнение операции.
Кластерная Файловая Система решает проблему целостности и в качестве Общей Файловой Системы позволяет нескольким компьютерам использовать Общие Диски.
Кластерная Файловая Система доступна для нескольких Операционных Систем:
Кластерная Файловая Система | Операционная система |
---|---|
Tru64 Cluster 5.x | HP Tru64 |
VERITAS Cluster File System | Sun Solaris, HP/UX |
Sun Cluster 3.0 | Sun Solaris |
Generalized Parallel File System (GPFS) | IBM AIX, Linux |
DataPlow | Linux, Solaris, Windows, IRIX |
PolyServe | Linux |
GFS | Linux |
NonStop Cluster | Unixware |