База данных Informix, чей самый занятый, большая часть важнейшей таблицы имела 16k степени, была до чего-то как 38 000 степеней на табличной области (думайте фрагментированный диск), и был дважды поддерживаемый уровень. (Поставщик на самом деле записал бумажную букву, которая сказала, что что-то как "Ваша база данных откажет в любое время"),
Предыдущая DBA, SA и сетевой оставленный человек и я был приблизительно 6 неделями из школы. Я провел большое исследование и выяснил, как устранить проблему, которая потребует 6 часов времени простоя. Босс отказался планировать отключение электричества.
Таким образом в один из самых напряженных дней года, системных замораживаний. 500 операторов центра обработки вызовов и коммерческий веб-сайт снижаются. При фиксации его после того, как отказ был трудным, потому что поставщик никогда не делал этого прежде на таблице того размера и ни с чем как "интересная" схема базы данных, которую мы использовали. Таким образом, мы сделали точно, что я запланировал сделать первоначально, кроме целостности БД, проверка заняла еще 5 часов.
На самом деле Gluster идеально подходит для этого сценария. Вы получаете двунаправленную репликацию и способность смонтировать файловую систему от любой машины, давая Вам (теоретически) дважды, эффективная способность ввода-вывода NFS и активной обработки отказа должна один из сбоя полей.
Проблема с выполнением активного rsync этот путь блокирует ввод-вывод из-за блокировок файла. В зависимости от Вашего приложения и изменения в данных это могло быть не важно или иметь катастрофические последствия! Распределенные файловые системы имеют очень определенную семантику блокировки, которые предотвращают это. Даже если inotify имеет лучшую блокировку (когда я в последний раз попробовал его, это не сделало), в эти дни затем, Ваши доступы к файлу могут заблокироваться, в зависимости от того, может ли Ваша сеть справиться с изменениями. Это все теоретические протесты, но стоящий изучения в зависимости от того, что делает Ваше приложение.
Было бы намного легче установить rsync, чтобы сделать активное зеркальное отражение, или просто установить долю nfs и иметь их обоих получение по запросу от того же фактического диска.
Мне наконец удалось получить решенное использование GlusterFS в обоих полях. Некоторые вещи изучены в процессе:
option read-subvolume
. От курса для сохранения целостности RAID1 GlusterFS всегда проверяют другие объемы также, но фактический файл получен непосредственно от дискаИзмененная клиентская конфигурация:
# Server1 configuration (RAID 1)
volume server2-tcp
type protocol/client
option transport-type tcp
option remote-host server2
option transport.socket.nodelay on
option transport.remote-port 6996
option remote-subvolume brick1
end-volume
volume posix-local
type storage/posix
option directory /shared
end-volume
volume locks-local
type features/posix-locks
subvolumes posix-local
end-volume
volume brick-local
type performance/io-threads
option thread-count 8
subvolumes locks-local
end-volume
volume mirror-0
type cluster/replicate
option read-subvolume brick-local
subvolumes brick-local server2-tcp
end-volume
.....
Ответ на мои оба вопроса:
Это копирует файлы на том же поле?
Нет, фс смонтирована с помощью FUSE. Текущая/etc/fstab строка:
/etc/glusterfs/client.vol/mnt/shared glusterfs значения по умолчанию 0 0
Вместо этого я должен использовать файловую систему непосредственно, локально пишущий на совместно использованном/? Репликация работает таким образом, не монтируя клиент?
Нет, всегда используйте смонтированные объемы для создания чтения-записей, использование непосредственно файловой системы может привести к несоответствиям.