Назад | Перейти на главную страницу

Полный прямой двунаправленный обмен данными между двумя томами хранения?

Как мне сделать 100% обмен данными между двумя устройствами хранения одинакового размера и сохранить оба раздела данных без использования третьего устройства в качестве временного буфера?

Другими словами, у меня есть два ОЧЕНЬ больших массива хранения, каждый с двумя ОЧЕНЬ БОЛЬШИМИ томами одинакового размера:

ПРИВОД 1: ТОМ A

ПРИВОД 2: ТОМ B

Я хочу, чтобы данные с тома a перешли на том b, а данные с тома b - на том a. Все данные должны быть сохранены. У меня нет возможности получить третье устройство для временного хранения.

Я полагаю, что теоретически это возможно программировать на битовом уровне. Пока на обоих томах есть свободное место (которое есть), это свободное пространство может служить временным хранилищем для обмена данными. В худшем случае я могу просто сделать это вручную, сделав пакетное копирование каталогов. Однако, конечно же, должно быть программное обеспечение, которое делает это на битовом уровне?

К сожалению, я обыскал сеть и оказался пустым. Все программное обеспечение, которое я вижу, выполняет КЛОНИРОВАНИЕ старого диска на новый, но без прямого двунаправленного обмена данными тома.

Любые идеи?

** Обновить **

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

** РЕШЕНИЕ **

Я закончил тем, что вручную переставлял данные туда и обратно, поскольку наборы данных были модульными. Файловый менеджер Altap Salamander имеет возможность ставить в очередь передачи файлов, поэтому я в основном создал очередь передачи файлов туда и обратно с размерами, рассчитанными на количество свободного места, которое будет доступно на каждом диске после копирования набора файлов. Работает как шарм, но требует слишком много времени по сравнению с использованием свободного массива хранения для временного размещения всей копии. Было бы здорово, если бы было программное обеспечение, которое это делало бы автоматически, но очевидно, что это одна из тех проблем, когда дополнительное оборудование лучше программного решения.

Я бы просто написал программу, чтобы открыть оба тома в необработанном режиме и выделить в памяти два больших буфера. Заполните один буфер из тома A и один из тома B. Затем запишите буфер, который вы читали из тома A, в том B и наоборот. Повторяйте, пока не завершите обмен.

Учтите, что если вас прервут где-нибудь в этом процессе, это будет очень некрасиво.

Я могу дать вам более конкретные предложения, если вы упомянете свою платформу.

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

Скопируйте данные разработчика на оборудование prod, а затем восстановите данные продукта на оборудование разработчика из резервных копий. Я что-то упускаю?

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

  • Шаг первый: сделайте резервную копию среды разработки и выключите ее.

  • Шаг второй: освободить диски от среды разработки

  • Шаг третий: выделить эти диски в среду prod (таким образом, чтобы среда prod не пыталась использовать старые файловые системы)

  • Шаг четвертый: перенести ваш прод на новые диски. Вы можете использовать свою ОС для зеркального копирования данных между обоими томами и перезапуска служб на новом оборудовании.

  • Шаг пятый: освободить старые диски prod от сервера prod и передать их серверу dev

  • Шаг шестой: восстановить данные разработчика на диски, представленные серверу разработки.

edit: Восстановление или использование временного пространства - ваши единственные варианты, и я сомневаюсь в вашем определении этого как «prod server», если он не имеет резервной копии таким образом, чтобы его можно было восстановить.

Это действительно требует аппаратного решения. У меня есть устройство, которое берет пару дисков SATA и дублирует один на другой одним нажатием кнопки. Компьютер не требуется.

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

Вы уверены, что у вас нет временного хранилища? - Я уверен, что у вас есть резервные копии ваших систем. Там у вас много временного хранилища.

Почему бы вам не использовать эти резервные копии для этого? Восстановите две последние резервные копии на желаемый массив хранения, и все готово.

Если вы не можете выполнить копирование + восстановление из резервной копии, предложенной Оскаром (и если у вас нет резервных копий, позор вам), то природа систем разработки делает это довольно простым и понятным. Просто доведите свои разработки до момента, когда вы опубликуете их на производственном сервере, и когда разработка больше не будет иметь никаких отклонений от производственной среды, поменяйте их ролями, а затем возобновите разработку на другом сервере.