Solaris: виртуальные срезы / диски для использования с ZFS - PullRequest
0 голосов
/ 13 декабря 2010

Это немного связано с моим предыдущим вопросом Solaris: Монтирование файловой системы на обработчиках приложения за исключением того, что этот вопрос предназначен для другой цели и является более простым, так как нет открытия / закрытия / блокировки, это просто блок байтов фиксированной длины с операциями чтения / записи.

Есть ли в любом случае, я могу создать виртуальный слайс, вроде RAM-диска или SVM-фрагмента ... но я хочу, чтобы чтение и запись проходили через мое приложение.

Я планирую использовать ZFS, чтобы взять несколько этих виртуальных срезов / дисков и превратить их в один больший для распределенного хранилища резервных копий со снимками. Мне очень нравится сжатие и укладка, которые предлагает ZFS. При необходимости я могу гарантировать, что существует только один экземпляр ZFS, обращающийся к этим виртуальным дискам одновременно (для предотвращения конфликтов кэша и тому подобного). Если один экземпляр выйдет из строя, мы можем убедиться, что он не запустится снова, а затем мы можем запустить другой экземпляр этого ZFS.

Я планирую, чтобы эти диски составляли около 4 ГБ или около того, затем я могу перемещаться по каждому чанку и решать, где их хранить (конечно же, несколько раз зеркально), а затем иметь ZFS для доступа к чанкам и собирать их вместе. в более крупные куски для фактического использования. Кроме того, ZFS разрешает добавление этих небольших фрагментов, если необходимо увеличить размер большего фрагмента.

Я знаю, что было бы дополнительное время ожидания / сетевой трафик, если бы мы использовали свое собственное приложение на Java, но это только для резервного копирования. Производственное хранилище имеет совершенно другую конфигурацию, которая не имеет отношения.

Редактировать: У нас есть система, которая использует все доступное пространство, и в основном, когда недостаточно места, она удалит старые снимки и увеличит промежутки между старыми снимками. Цель моего предложения - разрешить использование неиспользуемого пространства производственного оборудования без каких-либо дополнительных затрат. В разное время у разных узлов нашего производственного оборудования будет свободное пространство. Кроме того, система, которую я описываю, должна устранять любую точку отказа при попытке доступа к данным. Я надеюсь, что мне не придется покупать два больших устройства и синхронизировать их. Я бы предпочел просто иметь две точки доступа, и тогда мы можем смешивать большие / маленькие блоки любым удобным для нас способом и легко перемещать данные.

Это кросс-пост, потому что это больше связано с программным обеспечением, чем с системным администратором. Оригинальный вопрос здесь: https://serverfault.com/questions/212072. может быть хорошей идеей закрыть оригинал

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

Один из способов - написать драйвер устройства Solaris, а именно блочное устройство, эмулирующее реальный диск, но вместо этого оно будет взаимодействовать с вашим приложением.

Начните с прочтения Учебника по драйверу устройства , а затем взгляните на исходный код OpenSolaris для кода реальных драйверов.

В качестве альтернативы, вы можете исследовать изменение цели Solaris iSCSI в качестве интерфейса с вашим приложением.Опять же, рассмотрение OpenSolaris COMSTAR будет хорошим началом.

0 голосов
/ 28 декабря 2010

Кажется, что любой файл фиксированной длины в любой файловой системе подойдет для блочного устройства для использования с ZFS. Не уверен, как работают перезагрузки, но я уверен, что мы можем написать некоторые команды загрузки, чтобы решить эту проблему.

Редактировать: файл фиксированной длины будет находиться в сетевой файловой системе, такой как NFS.

...