Изобретение относится к дублированным компьютерным системам и особенно к варианту, при котором два компьютерных блока могут управлять данными на одном и том же дисководе.
В отказоустойчивых системах, которые используются, например, в коммутационных центрах, известна запись данных на два отдельных дисковода. Также ранее известно дублирование компьютеров так, чтобы, когда один компьютерный блок отказывает, другой компьютер может продолжать работу. В такой системе активный блок управляет обоими дисководами. Пассивный блок либо находится в резерве, либо неисправен, но он обычно не управляет дисководами. Также ранее известно, что хранятся в основной памяти компьютера такие области дисковода, которые считывались последними, поскольку, вероятно, что, по меньшей мере, некоторые из этих областей (например, директории) должны быть считаны вскоре опять.
Согласно чертежу дублированные компьютеры обычно располагаются таким образом, что только один (например, 10) из компьютеров 10 и 20 использует дисковод 14 и/или дисковод 24. Другой компьютер (в этом случае 20) тогда находится в резерве или неисправен. Первая шина 15 дисковода соединяет оба компьютерных блока и первый дисковод 14. Соответственно вторая шина 25 дисковода соединяет оба компьютерных блока и второй дисковод 24. Чертеж показывает воплощение, где каждый компьютерный блок 10 и 20 содержит два контроллера 13а, 13b и 23a и 23b дисковода соответственно. Альтернативно каждый компьютерный блок 10 и 20 мог бы содержать один контроллер дисковода, имеющий два отдельных интерфейса с шинами 15 и 25 дисковода. Шины 15 и 25 дисковода могут быть, например, шинами SCSI (интерфейс систем малых компьютеров), а дисководы 14 и 24 могут быть соответственно дисководами с интерфейсами SCSI. Чертеж также показывает двунаправленную шину 30 сообщения, соединяющую компьютеры 10 и 20. Через шину 30 сообщения компьютеры 10 и 20 обмениваются служебными сообщениями, например, они запрашивают о состоянии друг друга и т.д.
На чертеже показана система с двумя дисководами 14 и 24, поскольку в дублированных системах дисководы обычно также дублируются. В этом типичном случае шины дисковода также задублированы. Насколько это касается изобретения, дисководы 14 и 24 могли бы быть также соединены с общей шиной 15 или 25 дисковода. Однако изобретение относится к управлению дисководами, не обращая внимание на любые другие дисководы, которые может содержать система. Число дисководов и шин дисковода поэтому несущественно для изобретения.
Кэширование данных дисковода 14 в основной памяти 12 компьютера 10 составляет технологию, которая известна специалисту в данной области. Кэширование основывается на эмпирическом наблюдении, что когда задание диска выполняется в некоторой части дисковода 14, вероятно, что другое задание диска выполняется относительно скоро в той же самой части. Поэтому предпочтительно хранить в основной памяти 12 данные, соответствующие некоторым наиболее недавно используемым областям дисковода 14. Для цели кэширования дисковода определенная область обычно резервируется из основной памяти 12. Альтернативно контроллеры 13а и 13b дисковода могут содержать отдельную кэш-память.
Проблема встречается с использованием дублированных компьютеров, каждый из которых должен быть обеспечен возможностью использования, по меньшей мере, одного дисковода 14 и 24, несмотря на то что работа ускоряется кэшированием дисковода в основные памяти 12 и 22 компьютеров 10 и 20. Если один компьютерный блок (например, 10) модифицирует данные на дисководе 14, другой компьютерный блок (в этом случае 20) не обязательно знает об этом. Если этот компьютер 20 полагается на кэшированные данные в его основной памяти без считывания недавно скорректированных данных из дисковода 14, система запутывается. Благодаря отказоустойчивости компьютерные блоки 10 и 20 имеют отдельные основные памяти, так что компьютеры 10 и 20 не могут записывать непосредственно в основные памяти друг друга области на дисководе 14, которые они изменили.
На основе вышеизложенного задачей изобретения является создание способа и системы, с помощью которых два компьютерных блока могут кэшировать данные в совместно используемом дисководе надежным образом. Задачи изобретения решаются с помощью способа и системы, которые отличаются тем, что раскрывается в независимой формуле изобретения. Предпочтительные воплощения излагаются в зависимой формуле изобретения.
Изобретение основывается на идее, что компьютерный блок, желающий использовать дисковод, удостоверяется, что другой компьютер не использует дисковод одновременно, после чего компьютер проверяет, модифицировал ли другой компьютер какие-либо из данных на дисководе. Если данные на дисководе изменены, кэшированные данные, соответствующие этим данным, стираются из основной памяти. После этого задание диска выполняется и другой компьютерный блок информируется об измененных данных на дисководе.
Способ и система в соответствии с изобретением имеют главное преимущество в том, что совместно используемыми данными диска можно управлять из двух компьютеров так, что данные могут еще быть кэшированными в основных памятях компьютеров. Изобретение требует только немногих дополнений к программному обеспечению управления диском для того, чтобы быть реализованным. Оборудование обычно не должно быть изменено, учитывая изменения, которые потребовались бы в любом случае при дублировании компьютерной системы.
Изобретение будет описано более подробно в связи с предпочтительными воплощениями и со ссылкой на чертеж, иллюстрирующий дублированный компьютерный блок, содержащий дублированные дисководы.
Способ в соответствии с изобретением для управления совместно используемым дисководом 14 из двух компьютеров 10 и 20 может быть выполнен в системе, показанной на чертеже, например, следующими шагами. Предположим, что первый компьютер 10 желает использовать первый дисковод 14. Благодаря симметрии системы способ работает соответствующим образом:
(i) проверяется, послал ли другой компьютер 20 извещения об изменениях, которые он сделал на дисководе 14;
(ii) если другой компьютер 20 послал извещения об изменениях, которые он сделал на дисководе 14, кэширование данных, соответствующих измененным областям на дисководе 14, стирается;
(iii) задание диска выполняется;
(iv) если данные на дисководе 14 изменяются, другой компьютер информируется об измененных областях на дисководе 14.
Задание диска может включать несколько команд дисководу 14. Во время этого процесса другому компьютеру 20 должно быть воспрепятствовано использование дисковода 14. Это выполняется преимущественно таким образом, что перед заданием диска первый компьютер 10 резервирует дисковод для себя, например, командой SCSI RESERVE (резервировать). Соответственно дисковод может быть освобожден после задания диска командой SCSI RELEASE (освободить). Дисковод может быть освобожден после каждого задания диска. Освобождение может альтернативно происходить только, когда другой компьютер указывает, что ему требуется доступ к дисководу. Это указание необходимости в дисководе может быть послано либо через шину 30 сообщения, либо шину 15 дисковода.
Если компьютер 10 не может зарезервировать дисковод 14, значит, другой компьютер 20 зарезервировал дисковод. Первый компьютер 10 может тогда передать второму компьютеру 20 указание, что ему требуется дисковод 14. После этого первый компьютер 10 может попытаться зарезервировать дисковод 14 опять.
Число общей продолжительности новых попыток предпочтительно ограничивается заранее определенной величиной. Это заранее определенное время выбирается таким, чтобы другой компьютер 20 мог бы завершить его задание диска в пределах этого времени и он должен освободить дисковод 14. Альтернативно могут быть два заранее определенных временных ограничения. Более короткое временное ограничение (например, 5 с) используется для коротких резервирований, а более длительное (которое может быть несколько минут) используется для длительных резервирований, например, во время форматирования и уплотнения дисковода.
Если другой компьютер 20 не освободит дисковод 14 за время, соответствующее заранее определенному ограничению, в этот компьютер 20 может быть послан запрос, спрашивающий, зарезервировал ли он дисковод 14. Если ожидаемый ответ на этот запрос не получается, делается вывод, что другой компьютер 20 стал неисправен при выполнении задания диска. В этом случае передается команда возврата в исходное состояние в дисковод 14 и выполняется новая попытка резервирования.
В соответствии с воплощением изобретения вся передача сигналов как между компьютерами 10 и 20, так и из компьютеров в дисковод 14 происходит через шину 15 дисковода. Это воплощение является применимым особенно при использовании дисководов с интерфейсами SCSI, поскольку SCSI содержит хорошо определенные протоколы, посредством которых также другие команды, помимо команд, традиционно относящихся к дисководам, могут быть переданы. Версия II SCSI определяется в стандарте ХЗ.141-1994 ANSI (Американский национальный институт стандартов).
В соответствии с другим воплощением изобретения передача сигналов между компьютерами 10 и 20 происходит через шину сообщения, которая является отдельной от шины дисковода. Эта отдельная шина 30 сообщения показана на чертеже.
Способ в соответствии с изобретением реализуется наиболее предпочтительно как часть программного обеспечения управления диском дублированной компьютерной системы. Дополнения в соответствии с изобретением в программное обеспечение управления диском хранятся в памяти, в которой хранится остальное программное обеспечение управления диском. Если передача сигналов в соответствии с изобретением между компьютерами выполняется через шину сообщения, которая является отдельной от шины дисковода и которая соединяет компьютеры, эта шина сообщений не обязательно составляет известную технологию. На основе вышеприведенного описания очевидно для специалиста в данной области, как дополняется передача сигналов в шине сообщения для того, чтобы применить способ в соответствии с изобретением.
Из вышеприведенного описания также очевидно для специалиста в данной области, что при развитии технологии основная идея изобретения может быть реализована многими различными путями. Изобретение и его воплощения поэтому не ограничиваются вышеописанными примерами, но они могут изменяться в пределах рамок объема формулы изобретения.
Изобретение относится к вычислительной технике. Его использование в дублированных компьютерных системах позволяет получить технический результат в виде обеспечения возможности двум компьютерам использовать один и тот же дисковод. Способ заключается в том, что в системе, содержащей по меньшей мере два компьютера 10, 20, совместно используемый дисковод 14 и шину дисковода 15, соединяющую компьютеры 10, 20 и дисковод 14, первый компьютер 10, использующий совместно используемый дисковод 14, проверяет перед заданием диска, послал ли второй компьютер 20 извещение об изменениях, которые он сделал в совместно используемом дисководе 14; в ответ на обнаруженные извещения он стирает из своего буфера данные, соответствующие областям, которые изменены в совместно используемом дисководе 14; выполняет задание диска и информирует второй компьютер 20 о данных, которые изменены в дисководе 14. Технический результат достигается благодаря тому, что после задания диска первый компьютер 10, использующий совместно используемый дисковод 14, освобождает дисковод 14, если второй компьютер 20 указал, что ему требуется дисковод 14. 2 с. и 8 з.п.ф-лы, 1 ил.
US 4982324 A, 01.01.1991 | |||
Многопроцессорная система | 1988 |
|
SU1522228A1 |
US 4780812 A, 25.10.1988. |
Авторы
Даты
2002-10-10—Публикация
1996-09-13—Подача