Итак, я клонирую множество NTFS-дисков на базе Windows из образов каждый день, и я уже на полпути к проекту, который потенциально мог бы помочь мне и другим значительно ускорить этот процесс.
В настоящее время у меня установлена Ubuntu 17.10 с mdadm и 16 портами SATA. Идея состоит в том, чтобы подключить диски к каждому из портов SATA и выполнить одновременное клонирование для каждого сразу.
Если я использую dd на одном диске за раз, я могу получить результат около 135 МБ / с (макс. ~ 180 МБ / с), но как только я начну клонировать другие диски одновременно, скорость значительно снизится.
То же самое происходит с dcfldd, который имеет дополнительный бонус в виде возможности указать несколько of=
выходы.
Теперь ... изначально у меня была идея использовать массив RAID1, содержащий все диски, которые я хочу клонировать сразу. Однако, похоже, есть некоторые несоответствия с архитектурой RAID и удобством использования дисков после клонирования.
Вот что я пробовал до сих пор: я могу создать массив из нескольких дисков с помощью mdadm, а затем перейти к запуску sudo dd if=/home/clone/some_image.img of=/dev/md0 bs=4096
Кажется, что этот процесс проходит абсолютно нормально и дает отличные результаты по скорости (~ 110 Мб / с для каждого диска одновременно). После завершения процесса кажется, что диски не содержат данных, которые мы только что записали на них. Моим следующим шагом было бы обнулить суперблок на дисках в надежде вернуть их к используемым дискам, это тоже не работает.
Я даже пробовал создать новый массив, используя более старую версию суперблока (от 1.2 до 0.9), но это дает те же результаты, что и раньше.
Как будто диски будут доступны только через mdadm независимо от данных, хранящихся на них, что делает эту идею полностью провальной, даже несмотря на то, что первоначальные результаты были столь многообещающими.
Поэтому я задаю вам следующие вопросы: есть ли способ записать образ в массив RAID1, а затем снова превратить его в отдельные диски? Существуют ли другие технологии, которые позволят мне получить преимущества скорости клонирования в RAID1, но без использования RAID или необходимости сторонних инструментов для монтирования дисков?
Большое спасибо за то, что прочитали это.
Нет, это не сработает. Если у вас есть программный RAID Linux (или на самом деле аппаратный RAID), у вас будет внешняя структура управления для RAID, которая требуется, и которая сделает ваш диск непригодным для вашего варианта использования.
Когда вы клонируете одно изображение на несколько дисков вам нужно убедиться, что вы запустили все dd
экземпляров одновременно. Таким образом, все операции чтения (кроме первого) происходят из кеша, и исходный диск не перегружается.
Если вы клонируете разные изображения ваш исходный диск должен работать быстрее и иметь низкую задержку доступа. Простой RAID 1 или 0, вероятно, не подойдет. SSD, скорее всего, сделает это или RAID большего размера с большим количеством дисков.