clonando vários hardrives usando o comando dd

0

Estou desenvolvendo um software para clonar um disco rígido em vários outros. Eu quero clonar o conteúdo para até 23 drives de uma vez usando dd para clonar a partição da origem para os destinos usando sudo dd if=/dev/sdb1 of=/dev/sdc1 bs=4096 conv=notrunc,noerror e, em seguida, repetindo esse comando para sdd1 , sde1 etc ....

A taxa de transferência, no entanto, é muito baixa para a necessidade do aplicativo. Tipicamente, para uma boa transferência, tenho cerca de 100 MB / s, mas diminui para 20 MB / s, o que retarda consideravelmente o processo.

Permite-me apenas clonar até 12 discos de uma só vez. Então eu divido o processo de clonagem para clonar 12 discos para um primeiro passo e depois o restante para um segundo passo. Mas isso também não melhora a velocidade.

Eu queria saber se há algo que eu possa fazer entre meus dois passos.

    
por Didier Chavaroche 18.02.2015 / 11:17

2 respostas

2

Eu sempre usei tee para especificar vários alvos, embora eu não recomende exceder o número de núcleos disponíveis. O dd é bastante intensivo em relação ao uso de recursos.

cat source.dd | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd

Eu fiz isso há vários anos para a duplicação em massa de alguns pen drives USB de 4 GB em portas USB2. Tem sido um longo tempo, então eu não me lembro das fontes reais que eu usei, mas pode muito bem ter sido link que usa código praticamente idêntico.

    
por Elder Geek 19.02.2015 / 21:10
2

Você está apenas sendo limitado pela taxa de transferência interna do barramento PCI do seu computador. Se você quer velocidades mais altas, você terá que parar de usar um PC e atualizar para o hardware do servidor. Para obter mais informações, consulte as especificações da Intel folha para o Chipset da Série C220.

Além disso, você não precisa desenvolver este software como ele já existe: Servidor do CloneZilla. Esse, no entanto, funciona usando a rede, então você precisará de um servidor extremamente rápido com muita memória para armazenar em cache tudo e Ethernet de alta velocidade ou vários cartões Gigabit para poder servir todos os PCs que você deseja imaginar simultaneamente (sem esquecer de um comutador Ethernet de alta velocidade.

Se você ainda insistir em desenvolver sua própria solução interna, precisaremos ter um pouco mais de informações básicas sobre o que você está tentando realizar, por exemplo, adicionar o parâmetro --sparse ao seu comando dd pode acelerar bastante as coisas! Outras opções podem ser partclone ou ddrescue ou até instantâneos LVM, mas tudo isso depende do seu caso de uso.

    
por Fabby 19.02.2015 / 17:17