Итак, я каждый день клонирую множество дисков 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 или необходимости использования сторонних инструментов для монтирования дисков?
Большое спасибо, что прочитали это.
решение1
Нет, это не может работать. Если у вас есть программный RAID Linux (или на самом деле аппаратный RAID), у вас будет внешняя структура управления для RAID, которая необходима, и которая делает ваш диск непригодным для вашего варианта использования.
решение2
Когда вы клонируетеодно изображениена несколько дисков вам нужно убедиться, что вы запускаете все dd
экземпляры одновременно. Таким образом, все чтения (кроме первого) будут поступать из кэша, и исходный диск не будет зависать.
Если вы клонируетеразные изображенияВаш исходный диск должен стать быстрее и иметь низкую задержку доступа. Простой RAID 1 или 0, вероятно, не подойдет. Скорее всего, это сделает SSD или более крупный RAID с большим количеством дисков.