Редактирование: РОС, ответы на задачи

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 82 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 444: Строка 444:
1. Какие принципиальные решения приходится принимать при обеспечении файлового сервиса?
1. Какие принципиальные решения приходится принимать при обеспечении файлового сервиса?
-
'''Ответ:'''<br>
+
'''Ответ:'''
-
* ''Есть ли разница между клиентами и серверами?'' Имеются системы, где все машины имеют одно и то же ПО и любая машина может предоставлять файловый сервис. Есть системы, в которых серверы являются обычными пользовательскими процессами и могут быть сконфигурированы для работы на одной машине с клиентами или на разных. Есть системы, в которых клиенты и серверы являются фундаментально разными машинами с точки зрения аппаратуры или ПО.
+
-
 
+
-
* ''Должны ли быть файловый сервер и сервер директорий отдельными серверами или быть объединенными в один сервер.'' Разделение позволяет иметь разные серверы директорий (UNIX, MS-DOS) и один файловый сервер. Объединение позволяет сократить коммуникационные издержки.
+
-
 
+
-
* ''Должны ли серверы хранить информацию о клиентах.'' См. вопрос про сервер с состоянием.
+
-
 
+
2. Интерфейс сервера директорий.
2. Интерфейс сервера директорий.
-
'''Ответ:'''<br>
+
'''Ответ:'''
-
Обеспечивает операции создания и удаления директорий, именования и переименования файлов, перемещение файлов из одной директории в другую.
+
-
 
+
-
Определяет алфавит и синтаксис имен. Для спецификации типа информации в файле используется часть имени (расширение) либо явный атрибут.
+
-
 
+
-
Все распределенные системы позволяют директориям содержать поддиректории - такая файловая система называется иерархической. Некоторые системы позволяют создавать указатели или ссылки на произвольные директории, которые можно помещать в директорию. При этом можно строить не только деревья, но и произвольные графы (разница между ними очень важна для распределенных систем, поскольку в случае графа удаление связи может привести к появлению недостижимых поддеревьев. Обнаруживать такие поддеревья в распределенных системах очень трудно).
+
-
 
+
-
Ключевое решение при конструировании распределенной файловой системы - должны или не должны машины (или процессы) одинаково видеть иерархию директорий. Тесно связано с этим решением наличие единой корневой директории (можно иметь такую директорию с поддиректориями для каждого сервера).
+
-
 
+
-
Прозрачность именования.
+
-
Две формы прозрачности именования различают - прозрачность расположения (/server/d1/f1) и прозрачность миграции (когда изменение расположения файла не требует изменения имени).
+
-
 
+
-
Имеются три подхода к именованию:
+
-
+
-
* машина + путь;
+
-
* монтирование удаленных файловых систем в локальную иерархию файлов;
+
-
* единственное пространство имен, которое выглядит одинаково на всех машинах.
+
-
 
+
-
Последний подход необходим для достижения того, чтобы распределенная система выглядела как единый компьютер, однако он сложен и требует тщательного проектирования.
+
-
+
3. Семантика разделения файлов.
3. Семантика разделения файлов.
-
'''Ответ:'''<br>
+
'''Ответ:'''
-
* UNIX-семантика --- естественная семантика однопроцессорной ЭВМ - если за операцией записи следует чтение, то результат определяется последней из предшествующих операций записи. В распределенной системе такой семантики достичь легко только в том случае, когда имеется один файл-сервер, а клиенты не имеют кэшей. При наличии кэшей семантика нарушается. Надо либо сразу все изменения в кэшах отражать в файлах, либо менять семантику разделения файлов.
+
-
* Неизменяемые файлы --- очень радикальный подход к изменению семантики разделения файлов. Только две операции - создать и читать. Можно заменить новым файлом старый - т.е. можно менять директории. Если один процесс читает файл, а другой его подменяет, то можно позволить первому процессу доработать со старым файлом в то время, как другие процессы могут уже работать с новым.
 
- 
-
* Семантика сессий --- изменения открытого файла видны только тому процессу (или машине), который производит эти изменения, а лишь после закрытия файла становятся видны другим процессам (или машинам). Что происходит, если два процесса одновременно работали с одним файлом - либо результат будет определяться процессом, последним закрывшим файл, либо можно только утверждать, что один из двух вариантов файла станет текущим.
 
- 
-
* Транзакции --- процесс выдает операцию “НАЧАЛО ТРАНЗАКЦИИ”, сообщая тем самым, что последующие операции должны выполняться без вмешательства других процессов. Затем выдает последовательность чтений и записей, заканчивающуюся операцией “КОНЕЦ ТРАНЗАКЦИИ”. Если несколько транзакций стартуют в одно и то же время, то система гарантирует, что результат будет таким, каким бы он был в случае последовательного выполнения транзакций (в неопределенном порядке). Пример - банковские операции.
 
-
 
4. Серверы с состоянием и без состояния. Достоинства и недостатки.
4. Серверы с состоянием и без состояния. Достоинства и недостатки.
-
'''Ответ:'''<br>
+
'''Ответ:'''
-
''Серверы с состоянием. Достоинства.''
+
-
* Короче сообщения (двоичные имена используют таблицу открытых файлов).
+
-
* выше эффективность (информация об открытых файлах может храниться в оперативной памяти).
+
-
* блоки информации могут читаться с упреждением.
+
-
* убедиться в достоверности запроса легче, если есть состояние (например, хранить номер последнего запроса).
+
-
* возможна операция захвата файла.
+
-
 
+
-
''Серверы без состояния. Достоинства.''
+
-
* устойчивость к ошибкам.
+
-
* не требуется операций ОТКРЫТЬ/ЗАКРЫТЬ.
+
-
* не требуется память для таблиц.
+
-
* нет ограничений на число открытых файлов.
+
-
* нет проблем при крахе клиента.
+
5. Алгоритмы обеспечения консистентности кэшей в распределенных файловых системах.
5. Алгоритмы обеспечения консистентности кэшей в распределенных файловых системах.
-
'''Ответ:'''<br>
+
'''Ответ:'''
-
* Алгоритм со сквозной записью. Необходимость проверки, не устарела ли информация в кэше. Запись вызывает коммуникационные расходы (MS-DOS).
+
-
 
+
-
* Алгоритм с отложенной записью. Через регулярные промежутки времени все модифицированные блоки пишутся в файл. Эффективность выше, но семантика непонятная пользователю (UNIX).
+
-
 
+
-
* Алгоритм записи в файл при закрытии файла. Реализует семантику сессий. Не намного хуже случая, когда два процесса на одной ЭВМ открывают файл, читают его, модифицируют в своей памяти и пишут назад в файл.
+
-
 
+
-
* Алгоритм централизованного управления. Можно выдержать семантику UNIX, но не эффективно, ненадежно, и плохо масштабируется.
+
6. Способы организации размножения файлов и коррекции копий.
6. Способы организации размножения файлов и коррекции копий.
-
'''Ответ:'''<br>
+
'''Ответ:'''
-
Система может предоставлять такой сервис, как поддержание для указанных файлов нескольких копий на различных серверах. Главные цели:
+
-
 
+
-
# Повысить надежность.
+
-
# Повысить доступность (крах одного сервера не вызывает недоступность размноженных файлов.
+
-
# Распределить нагрузку на несколько серверов.
+
-
# Явное размножение (непрозрачно). В ответ на открытие файла пользователю выдаются несколько двоичных имен, которые он должен использовать для явного дублирования операций с файлами.
+
-
# “Ленивое” размножение. Одна копия создается на одном сервере, а затем он сам автоматически создает (в свободное время) дополнительные копии и обеспечивает их поддержание.
+
-
# Симметричное размножение. Все операции одновременно вызываются в нескольких серверах и одновременно выполняются.
+
-
 
+
-
Протоколы коррекции.
+
-
Просто посылка сообщений с операцией коррекции каждой копии является не очень хорошим решением, поскольку в случае аварий некоторые копии могут остаться не скорректированными. Имеются два алгоритма, которые решают эту проблему.
+
-
 
+
-
# Метод размножения главной копии. Один сервер объявляется главным, а остальные - подчиненными. Все изменения файла посылаются главному серверу. Он сначала корректирует свою локальную копию, а затем рассылает подчиненным серверам указания о коррекции. Чтение файла может выполнять любой сервер. Для защиты от краха главного сервера до завершения всех коррекций, до выполнения коррекции главной копии главный сервер запоминает в стабильной памяти задание на коррекцию. Слабость - выход из строя главного сервера не позволяет выполнять коррекции.
+
-
# Метод голосования. Идея - запрашивать чтение и запись файла у многих серверов (запись - у всех!). Запрос может получить одобрение у половины серверов плюс один. При этом должно быть согласие относительно номера текущей версии файла. Этот номер увеличивается на единицу с каждой коррекцией файла. Можно использовать различные значения для кворума чтения (Nr) и кворума записи (Nw). При этом должно выполняться соотношение Nr+Nw>N. Поскольку чтение является более частой операцией, то естественно взять Nr=1. Однако в этом случае для кворума записи потребуются все серверы.
+
== Тема 6 (задачи на консистентность)==
== Тема 6 (задачи на консистентность)==

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Шаблоны, использованные на этой странице:

Личные инструменты
Разделы