J'ai un seul disque dont je veux créer un miroir; appelons ce disque sda
. Je viens d'acheter un autre disque de taille identique, que nous pouvons appeler sdb
. sda
et sdb
avoir une partition appelée sda1
et sdb1
respectivement.
Lors de la création d'un raid, je ne veux pas effacer mon sda
nettoyage et recommencer, je veux juste qu'il commence à refléter avec sdb
. Ma pensée était de faire:
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=1 /dev/sda1
... pour créer la matrice sans sdb
disque, puis exécutez quelque chose comme (je pense à haute voix à la commande suivante, car je ne sais pas comment réaliser cette étape)
mdadm /dev/md0 --add /dev/sdb1
La note sdb1
est supposée être formatée de la même manière quesda1
Est-ce possible?
--add
, et vous devez être prudent, mais ce n'est pas très compliqué. Voir Comment configurer la mise en miroir de disques dans Ubuntu? (Je ne peux pas proposer cette question en double à cause des nouvelles règles.)Réponses:
La réponse simple à la question du titre est "Oui". Mais ce que vous voulez vraiment faire, c'est la prochaine étape, qui consiste à mettre en miroir les données existantes.
Il est possible de convertir le disque existant, mais c'est risqué, comme mentionné, en raison de l'emplacement des métadonnées. Il est préférable de créer un miroir vide (cassé) avec le nouveau disque et d'y copier les données existantes. Ensuite, si cela ne fonctionne pas, vous redémarrez simplement l'original non mis en miroir.
Tout d'abord, initialisez en
/dev/sdb1
tant que nouveau/dev/md0
avec un lecteur manquant et initialisez le système de fichiers (je suppose que ext3, mais le choix vous appartient)Maintenant,
/dev/sda1
c'est probablement votre système de fichiers racine (/
), donc pour des raisons de sécurité, vous devriez faire la prochaine étape à partir d'un CD en direct, d'un disque de secours ou d'un autre système amorçable qui peut accéder aux deux/dev/sda1
et/dev/md0
bien que j'aie réussi à le faire en passant en mode mono-utilisateur.Copiez tout le contenu du système de fichiers sur
/dev/sda1
à/dev/md0
. Par exemple:Modifiez
/etc/fstab
ou assurez-vous que, lors du prochain démarrage,/dev/md0
est monté à la place de/dev/sda1
. Votre système est probablement configuré pour démarrer à partir de/dev/sda1
et les paramètres de démarrage spécifient probablement cela en tant que périphérique racine, donc lors du redémarrage, vous devez le modifier manuellement afin que la racine soit/dev/md0
(en supposant qu'elle/dev/sda1
soit racine). Après le redémarrage, vérifiez qu'il/dev/md0
est maintenant monté (df
) et qu'il fonctionne comme un miroir dégradé (cat /proc/mdstat
). Ajoutez/dev/sda1
au tableau:Étant donné que la reconstruction remplacera
/dev/sda1
, la version de métadonnées que vous utilisez n'est pas pertinente. Comme toujours lors de modifications majeures, effectuez une sauvegarde complète (si possible) ou assurez-vous au moins que tout ce qui ne peut pas être recréé est sûr.Vous devrez régénérer votre configuration de démarrage pour l'utiliser en
/dev/md0
tant que root (si elle/dev/sda1
était root) et probablement besoin de régénérermdadm.conf
pour vous assurer qu'elle/dev/md0
est toujours démarrée.la source
cp
pour copier des systèmes de fichiers, vous manquerez certaines choses comme les liens durs, les attributs étendus ... Utiliseztar
oursync
avec les options appropriées. Lors du démarrage d'un Live CD, prenez garde que le mappage uid-user est différent (voir les options --numeric-owner de tar / rsync). Voir aussi clone2fs pour le clonage de systèmes de fichiers extx.cp
gérer la préservation des liens (-d), le mode, la propriété et les horodatages (-p), le faire récursivement (-R) et rester sur un système de fichiers (-x), mais je pense que vous avez peut-être raison sur les liens durs et étendus les attributs.rsync -aH --delete /mnt/olddisk/ /mnt/newarray/
est une bonne option. Ajoutez-vih --progress
si vous voulez vraiment voir ce qu'il fait.Bien sûr, vous pouvez le créer en spécifiant que le deuxième disque est actuellement
missing
:la source
Vous pouvez le faire. Vous devez être un peu prudent, mais ce n'est pas dangereux¹ si vous faites très attention à ne rien taper et que cela ne laisse aucun problème dans la configuration.
Je recommande fortement de ne faire aucune des manipulations sur un système live. C'est possible dans certains cas mais nécessite des précautions supplémentaires. Démarrez à partir d'un liveCD / liveUSB tel que Parted ou SystemRescueCD .
Tout d'abord, vous devez réduire un peu le volume pour faire de la place aux métadonnées mdraid (le superbloc). Il existe plusieurs formats de métadonnées , vous devez en utiliser un qui place les métadonnées à la fin du disque. (Dans certaines configurations, vous pouvez avoir suffisamment d'espace pour placer le superbloc au début, mais c'est plus compliqué et sujet aux risques, donc j'y vais.)
Vous devez vous assurer que les 128 derniers Ko du périphérique de bloc ne sont pas utilisés, pour faire de la place pour le superbloc. Vous devrez donc réduire le système de fichiers
/dev/sda1
. S'il s'agit d'un système de fichiers ext2 / ext3 / ext4, obtenez la taille actuelle du système de fichiers avectune2fs /dev/sda1
, puis exécutezresize2fs /dev/sda1 NNN
où NNN est cette taille moins 128 Ko. Vous pouvez le faire avec Parted à la place. Si vous devez réduire un système de fichiers extN, vous devrez d'abord le démonter; un système de fichiers btrfs peut être réduit en direct.Une fois que vous avez vérifié que les 128 derniers Ko du périphérique de bloc sont libres, appelez
mdadm --create
pour créer un volume RAID-1. Cela ne touche aucune partie du volume en dehors du superbloc. Initialement, le volume aura un seul composant: tous les autres sont définis comme ayant échoué. Vous devez réussir--level=1
(ou de manière équivalente-n 1
) (cette approche ne fonctionne que pour RAID-1) et--metadata=0.9
ou--metadata=1.0
(le format de superbloc par défaut 1.2 place le superbloc au début du périphérique, ce qui peut écraser les données). L'argument de--raid-devices
(-n
) est le nombre de composants (y compris ceux manquants) dans le volume RAID.Vous pouvez maintenant activer la baie et ajouter d'autres composants.
Remarque sur les chargeurs de démarrage: Grub2 comprend Linux RAID-1 et peut démarrer à partir de celui-ci. Les chargeurs de démarrage tels que Grub1 qui ne comprennent pas le RAID lisent de manière transparente à partir des volumes miroir, mais votre système ne démarre pas si le lecteur à partir duquel le chargeur de démarrage lit échoue. Si le volume RAID est sur une partition, assurez-vous d'installer le secteur de démarrage de Grub sur les deux disques.
¹ Assurez-vous d'avoir des sauvegardes. «Pas dangereux» signifie «vous n'en aurez probablement pas besoin», et non «jouer vos données».
Republié et légèrement adapté de Comment configurer la mise en miroir de disques (RAID-1)
la source