Archives pour la catégorie ‘FreeBSD’

Munin : monitorer la température des disques durs sous FreeBSD & Mac OS X


Je vous fais part de mon patch pour le plugin hddtemp_smartctl de Munin afin que la température des disques durs puisse être monitorée sous FreeBSD, OpenBSD, NetBSD et Mac OS X :

http://exchange.munin-monitoring.org/plugins/hddtemp_smartctl/details

Pour rappel, ce plugin nécessite le port sysutils/smartmontools. La commande smartctl n’étant fonctionnelle que sous root, il faut adapter la configuration de Munin dans le fichier /usr/local/etc/munin/plugin-conf.d/plugins.conf :

[hddtemp_smartctl]
user root

Pour tester le bon fonctionnement du plugin, rien de plus simple :

$ perl /usr/local/etc/munin/plugins/hddtemp_smartctl
disk0.value 50

FreeBSD : activer le support SSH depuis l’installation en mode ‘fixit’

Le mode ‘Fixit’ présent sur le CD / DVD d’installation de FreeBSD 8 est utile pour dépanner votre système ou encore effectuer une installation custom (ZFS et cie).

Pour améliorer votre confort, un vrai terminal est préférable, encore faut-il que le support SSH soit activé. Pour ce faire, on commence par l’initialisation réseau :

Fixit# ifconfig em0 192.168.1.166
Fixit# route add default 192.168.1.254
Fixit# echo 'nameserver 192.168.100.254' > /etc/resolv.conf

Ensuite, la configuration du serveur SSH :

Fixit# mkdir /etc/ssh
Fixit# cp /dist/etc/ssh/sshd_config /etc/ssh
Fixit# echo PermitRootLogin yes >> /etc/ssh/sshd_config
Fixit# ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N ''
Fixit# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
Fixit# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''

Et la configuration d’un environnement minimal pour l’utilisateur root (qui n’aura d’ailleurs aucun mot de passe) :

Fixit# mkdir /root
Fixit# ln -s /mnt2/bin/csh /bin/csh
Fixit# echo "setenv PATH ‘/bin:/sbin:/usr/bin:/usr/sbin:/stand:/mnt2/stand:/mnt2/bin:/mnt2/sbin:/mnt2/usr/bin:/mnt2/usr/sbin’" > /root/.cshrc
Fixit# echo “setenv EDITOR ‘/mnt2/usr/bin/ee’” >> /root/.cshrc
Fixit# echo “set prompt=’Fixit# ‘” >> /root/.cshrc
Fixit# /mnt2/usr/sbin/sshd

Et c’est parti, on peut maintenant agir à distance :

$ ssh root@192.168.1.166
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
	The Regents of the University of California.  All rights reserved.

Fixit#


FreeBSD : RAID1 hotswap avec gestion AHCI

FreeBSD 8 gère par défaut vos disques par le driver ATA. Celui ne gère pas le hotswap disque. Si atacontrol permet bien de désactiver et débrancher un disque à chaud, la détection n’est effective qu’au prochain reboot. Pour permettre une détection à chaud, il est nécessaire d’utiliser le driver expérimental AHCI, tout en s’assurant que la gestion AHCI des disques est supportée et activée dans le BIOS.

La gestion AHCI s’appuie sur la couche CAM (déjà utilisée pour les périphériques SCSI et USB), ce qui implique un changement  de noms des disques durs. Ainsi /dev/ad0 devient /dev/ada0. La fstab est à modifier avant de redémarrer, d’autant qu’un LiveCD est nécessaire en cas d’erreur ou pour réactiver la gestion ATA. Pour éviter ces désagréments, GEOM propose comme solution les labels qui permettent de bénéficier de noms fixes pour les disques (quelque soit le mode en cours). Pour récupérer les labels de vos partitions UFS, activez l’option suivante :

# sysctl kern.geom.label.debug=1

Les labels seront alors listés au prochain boot, lesquels seront à récupérer et à placer dans la fstab. Pour la partition de swap, le label doit être créer par glabel :

# glabel label swap /dev/ad0s1b

Dans le cas d’un système déjà configuré en RAID par GEOM, les labels sont déjà configurés : GEOM les utilise implicitement. Ainsi, l’activation / désactivation de l’AHCI est transparente et un simple reboot permet de bénéficier de la gestion AHCI.

Pour rappel, voici la méthode de création d’un RAID1 sous GEOM :

# sysctl kern.geom.debugflags=16
# gmirror label -v -b round-robin gm0 /dev/ad8
# cat geom_mirror_load="YES" >> /boot/loader.conf
# ee /etc/fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/mirror/gm0s1b      none            swap    sw              0       0
/dev/mirror/gm0s1a      /               ufs     rw              1       1
/dev/mirror/gm0s1f      /home           ufs     rw              2       2
/dev/mirror/gm0s1d      /usr            ufs     rw              2       2
/dev/mirror/gm0s1e      /var            ufs     rw              2       2
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0
# shutdown -r now
# gmirror insert gm0 /dev/ad10
# gmirror status
 Name    Status  Components
mirror/gm0  DEGRADED  ada0
                      ada1 (48%)

A présent, la gestion des AHCI peut être activée :

# cat ahci_load="YES" >> /boot/loader.conf
# shutdown -r now
# camcontrol devlist
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus2 target 0 lun 0 (ada1,pass2)
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus3 target 0 lun 0 (pass0,ada0)
<Slimtype DVD A  DS8A2S 6P5D>      at scbus5 target 0 lun 0 (cd0,pass1)

Je débranche le second disque, la pile RAID se dégrade :

(ada1:ahcich3:0:0:0): lost device
(ada1:ahcich3:0:0:0): Invalidating pack
GEOM_MIRROR: Cannot write metadata on ada1 (device=gm0, error=6).
GEOM_MIRROR: Cannot update metadata on disk ada1 (error=6).
GEOM_MIRROR: Device gm0: provider ada1 disconnected.

Une fois le disque rebranché, une détection des périphériques de masse est nécessaire (ce n’est pas automatisé) :

# camcontrol devlist
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus2 target 0 lun 0 (pass0,ada0)
<Slimtype DVD A  DS8A2S 6P5D>      at scbus5 target 0 lun 0 (cd0,pass1)
# camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful
Re-scan of bus 4 was successful
Re-scan of bus 5 was successful
# camcontrol devlist
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus2 target 0 lun 0 (pass0,ada0)
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus3 target 0 lun 0 (ada1,pass2)
<Slimtype DVD A  DS8A2S 6P5D>      at scbus5 target 0 lun 0 (cd0,pass1)

Le disque est à présent reconnu mais le RAID lui aussi ne se reconstruit pas automatiquement :

(ada1:ahcich3:0:0:0): Synchronize cache failed
(ada1:ahcich3:0:0:0): removing device entry
(aprobe0:ahcich3:0:0:0): SIGNATURE: 0000
ada1 at ahcich3 bus 0 target 0 lun 0
ada1: <WDC WD2502ABYS-02B7A0 02.03B03> ATA/ATAPI-8 SATA 2.x device
ada1: 300.000MB/s transfers
ada1: 239429MB (490350672 512 byte sectors: 16H 63S/T 16383C)
ada1: Native Command Queueing enabled
GEOM_MIRROR: Component ada1 (device gm0) broken, skipping.
GEOM_MIRROR: Cannot add disk ada1 to gm0 (error=22).
GEOM_MIRROR: Device gm0: rebuilding provider ada1.

Ce qui est entrepris de suite :

# gmirror forget gm0 /dev/ada1
gmirror: No such device: /dev/ada1.
# gmirror insert gm0 /dev/ada1
# gmirror status
 Name    Status  Components
mirror/gm0  DEGRADED  ada0
                      ada1 (1%)

La reconstruction RAID au final ne nécessite plus aucun redémarrage. Le driver AHCI apporte également d’autres fonctionnalités comme le support du NCQ, ce qui permet d’augmenter le débit en cas de forte charge. Pour le vérifier et obtenir des informations détaillées sur un disque, camcontrol est de rigueur :

# camcontrol identify ada0
pass0: <WDC WD2502ABYS-02B7A0 02.03B03> ATA/ATAPI-8 SATA 2.x device

protocol              ATA/ATAPI-8 SATA 2.x
device model          WDC WD2502ABYS-02B7A0
serial number         WD-WCAT1E308323
firmware revision     02.03B03
cylinders             16383
heads                 16
sectors/track         63
LBA supported         268435455 sectors
LBA48 supported       490350672 sectors
PIO supported         PIO4
DMA supported         WDMA2 UDMA6
overlap not supported

Feature                      Support  Enable    Value           Vendor
write cache                    yes    yes
read ahead                     yes    yes
Native Command Queuing (NCQ)   yes        31/0x1F
Tagged Command Queuing (TCQ)   no    no    31/0x1F
SMART                          yes    yes
microcode download             yes    yes
security                       yes    no
power management               yes    yes
advanced power management      no    no    0/0x00
automatic acoustic management  yes    yes    254/0xFE    128/0x80

FreeBSD : coloriser la sortie de ls

Ajoutez dans votre fichier shell rc (~/.shrc ou autre) :

CLICOLOR="YES"
export CLICOLOR

Si vous souhaitez coloriser la sortie comme sous Linux, rajoutez celles-ci :

LSCOLORS="ExGxFxdxCxDxDxhbadExEx"
export LSCOLORS

FreeBSD : un MTA pratique pour les jails

Pour chaque jail, il est nécessaire de recevoir les mails (cron, periodic, etc…). Afin de préserver au mieux les ressources et éviter le recours à un vrai relais SMTP (sendmail, postfix ou autre), un MTA idéal est ssmtp (Simple SMTP Agent). Il permet de relayer tous les mails vers un SMTP, ceci par un contournement de la commande sendmail. Donc pas de démon et c’est tant mieux.

Pour l’installer :

# cd /usr/ports/mail/ssmtp
# make install
# make replace

La dernière commande va remplacer la commande sendmail par celle de ssmtp.

Au niveau de la configuration, il y a deux fichiers :

# mv /usr/local/etc/ssmtp/ssmtp.conf.sample /usr/local/etc/ssmtp/ssmtp.conf
# mv /usr/local/etc/ssmtp/revaliases.sample /usr/local/etc/ssmtp/revaliases

Pour ssmtp.conf, il faut veiller aux options suivantes :

mailhub=172.16.0.3:25
rewriteDomain=hbis.fr

La première permet d’indiquer le serveur SMTP vers qui relayer les envois de mail. Dans mon cas, c’est l’IP de ma jail SMTP. Un serveur SMTP externe peut bien sûr être utilisé  La seconde option permet de spécifier le domaine des adresses d’envoi s’il n’est pas présent,  ce qui est le cas des comptes systèmes, sous peine d’avoir un refus d’envoi.

Le second fichier revaliases permet de convertir les adresses d’envoi, bref configurer des alias, mais aussi préciser le SMTP de destination pour un mail sender donné.

Pour désactiver le démon sendmail de votre jail, n’oubliez pas de corriger votre fichier /etc/rc.conf :

sendmail_enable="NONE"

Et pour virer le nom d’utilisateur Charlie des mails envoyés par le compte root :

# pw user mod root -c ''

FreeBSD : jail PostgreSQL

Pour pouvoir exécuter un serveur PostgreSQL sous une jail FreeBSD, il est nécessaire d’autoriser le support de la mémoire partagée (SHM). Il convient d’activer le flag dans /etc/rc.conf :

jail_sysvipc_allow="YES"

Si cela n’est pas fait, l’initialisation de l’espace de stockage échoue de cette façon :

sql# /usr/local/etc/rc.d/postgresql oneinitdb
The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.</p>
The database cluster will be initialized with locale C.
The default text search configuration will be set to "english".
creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 10
selecting default shared_buffers ... 400kB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... FATAL:  could not create shared memory segment: Function not implemented
DETAIL:  Failed system call was shmget(key=1, size=1622016, 03600).
child process exited with exit code 1
initdb: removing data directory "/usr/local/pgsql/data"

NetBSD : configuration RAID1 avec RAIDframe

Je vais vous guider dans la configuration d’un RAID1 logiciel avec RAIDFrame sous NetBSD. Cette procédure fonctionne également sous OpenBSD (votre noyau devant intégrer le support RAIDframe) ou encore FreeBSD 4/5. Le RAID peut être créé à chaud sans LiveCD et à distance, mais il est recommandé d’avoir un accès au BIOS setup. Si vous ne faites pas d’erreur de calcul ou de frappe, tout se passera bien sinon pensez d’emblée à faire une backup !

La procédure consiste à créer le RAID1 initialement sur le second disque, à y recopier le système et les données « live » du premier disque. Suite à cela, un redémarrage activera le RAID du second disque, auquel le premier disque sera ajouté.

Etape 1 : installation du système

Je débute par l’installation d’un système NetBSD 5.0.1/amd64. Le système est installé sur le premier disque dur SCSI (/dev/sd0) d’une capacité de 8 Go (l’exemple est ici réalisé sous VMware), dont l’ensemble est affecté au slice de NetBSD (partition DOS 0). Au niveau des partitions BSD, je crée le strict minimum par souci de simplification du présent guide : /, swap et  /home.

netbsd# grep sd0 dmesg.boot
sd0 at scsibus0 target 0 lun 0: <VMware,, VMware Virtual S, 1.0>
 disk fixed
sd0: 8192 MB, 1044 cyl, 255 head, 63 sec, 512 bytes/sect x 16777216
 sectors
netbsd# grep sd1 dmesg.boot
sd1 at scsibus0 target 1 lun 0: <VMware,, VMware Virtual S, 1.0>
 disk fixed
sd1: 8192 MB, 1044 cyl, 255 head, 63 sec, 512 bytes/sect x 16777216
 sectors

netbsd# fdisk /dev/sd0
Partition table:
0: NetBSD (sysid 169)
 start 63, size 16777153 (8192 MB, Cyls 0-1044/85/1), Active

netbsd# disklabel -r sd0
# /dev/rsd0d:
total sectors: 16777216

16 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 a:   8401995        63     4.2BSD   2048 16384     0
 b:    273105   8402058       swap
 c:  16777153        63     unused      0     0
 d:  16777216         0     unused      0     0
 e:   8102053   8675163     4.2BSD   2048 16384     0

La partition d est reservée et correspond au disque dur (la taille de 16777153 correspond bien à la taille du slice NetBSD). La partition c est aussi réservée et correspond au slice NetBSD, englobant toutes les partitions définies par l’utilisateur : a (point de montage /), b (swap) et e (/home). Comme j’utilise tout l’espace disque, la taille de c correspond à celle du disque moins les 63 blocs réservés par l’ID de slice. Ceci se matérialise au niveau de l’offset de c par rapport à d et également de a, qui débute fatalement au  63ème bloc.

A retenir :

  • total sectors = size d
  • size c = size d – 63
  • offset c = offset a = 63

Etape 2 : partitionnement du 2ème disque dur (/dev/sd1)

Le slice NetBSD doit être reproduit à l’identique sur le second disque. Si  les disques ont des tailles différentes, il faut jouer avec fdisk pour créer un slice de la taille de celui du premier disque. Parfois, il est utile d’effacer la table des slices, si le disque a déjà été partitionné :

netbsd# dd if=/dev/zero of=/dev/rsd1d bs=8k count=1

netbsd# fdisk -0ua /dev/rsd1d
Partition table:
0: NetBSD (sysid 169)
 start 63, size 16777153 (8192 MB, Cyls 0-1044/85/1), Active
 PBR is not bootable: All bytes are identical (0x00)

Au niveau des partitions, c’est différent : une unique partition dédiée au RAID est créée. Cette partition va devenir le pseudo-périphérique disque RAID. C’est sur celui-ci que nos partitions /, swap et /home seront créées. RAIDframe impose cette limitation de ne fonctionner que sur une seule partition par disque.

Sur /dev/sd1, on édite la table des partitions et on créé la partition a avec comme type RAID, de taille égale à l’espace disque total moins les 63 blocs d’identification. Pour faire simple, il suffit de dupliquer la ligne de la partition c pour le slice a et y changer le type.

netbsd# disklabel -r -e -I sd1
total sectors: 16777216

4 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 a:  16777153        63       RAID
 c:  16777153        63     unused      0     0
 d:  16777216         0     unused      0     0

Etape 3 : initialisation du RAID

Pour le moment, seul le second disque est intégrable au RAID. Il faut donc ruser et créer un faux disque /dev/sd9 qui sera retiré une fois /dev/sd0 intégré.

On établit le fichier de configuration du RAID entre /dev/sd9 et /dev/sd1 :

netbsd# more /root/raid0.conf
START array
1 2 0

START disk
/dev/sd9a
/dev/sd1a

START layout
128 1 1 1

START queue
fifo 100

Le faux disque est  créé :

netbsd# cd /dev/
netbsd# sh MAKEDEV sd9

L’initialisation du pseudo-périphérique RAID peut commencer. Il sera accessible par /dev/raid0. En retour, RAIDframe signale un élément manquant : ceci est normal. L’identifiant RAID est fixé à la date actuelle et le calcul de parité est lancé. La dernière commande affiche le statut du RAID :

netbsd# raidctl -C /root/raid0.conf raid0
netbsd# raidctl -I 200910 raid0
netbsd# raidctl -i raid0

netbsd# raidctl -s raid0

Les partitions /, swap et /home peuvent être créées :

netbsd# disklabel raid0 > /root/disklabel.raid0
netbsd# more /root/disklabel.raid0
netbsd# /dev/rraid0d:
total sectors: 16777088

4 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 a:  16777088         0     4.2BSD      0     0     0
 d:  16777088         0     unused      0     0

Comme avant, il faut se baser sur la taille du disque /dev/raid0 (16777088) pour calculer les tailles des partitions  :

  • size a = 4 * 1024 * 1024 * 2 = 8388608 blocs
  • offset a = 0
  • size b = 1 * 1024 * 1024 * 2 = 2097152
  • offset a  = size a = 2097152
  • size e = size d – size a – size b = 16777088 – 8388608 – 2097152 = 6291328
  • offset e = size a + size b = 10485760

Soit :

a:   8388608         0     4.2BSD      0     0     0
b:   2097152   8388608     swap        
d:  16777088         0     unused      0     0     0
e:   6291328  10485760     4.2BSD      0     0     0

La table de partitions peut être écrite et les systèmes de fichiers FFSv2 / et /home créés :

netbsd# disklabel -R -r raid0 disklabel.raid0
netbsd# newfs -O 2 /dev/rraid0a
netbsd# newfs -O 2 /dev/rraid0e

Une nouvelle limite doit être contourner : sur une version de NetBSD antérieure à la 5, les crash dumps du noyau ne peuvent être stockés que sur un périphérique disque réel. Ici, ce n’est pas nécessaire, mais la manipulation est à connaître. Si la swap /dev/raid0b ne peut être utilisée, rien ne nous interdit d’utiliser la swap « réelle » sur /dev/sd1 (et par la suite /dev/sd0). Il faut corriger la table de partitions du second disque :

netbsd# disklabel sd1 > /root/disklabel.sd1
netbsd# more /root/ disklabel.sd1
 a:  16777153        63       RAID
 c:  16777153        63     unused      0     0
 d:  16777216         0     unused      0     0

La taille de la swap réelle est identique à celle créé sur /dev/raid0. Il faut juste prendre en compte dans l’offset la taille réservée au bloc du RAID (64 blocs). Soit :

  • size /dev/sd1b = size /dev/raid0b
  • offset /dev/sd1b = 63 + 64 + offset /dev/raid0b

Soit :

a:  16777153        63       RAID
b:    273105   8402122       swap
c:  16777153        63     unused      0     0
d:  16777216         0     unused      0     0

Attention, un mauvais calcul de l’offset peut se manifester par un écrasement de vos données !

netbsd# disklabel -R -r /dev/sd1 disklabel.sd1

disklabel signale que la partition a écrase la partition b : ceci est tout à fait normal car b est située dans a.

Etape 4 : copie du système

Les partitions RAID sont montables et le dump des données depuis le premier disque est réalisable :

netbsd# mount /dev/raid0a /mnt
netbsd# dump -0 -f - / | (cd /mnt && restore -x -f -)

netbsd# mount /dev/raid0e /mnt/home
netbsd# dump -0 -f - /home | (cd /mnt/home && restore -x -f -)

Le fichier fstab du RAID doit à présent pointer sur les partitions RAID :

netbsd# vi /mnt/etc/fstab
/dev/raid0a     /       ffs     rw,log,noatime   1 1
/dev/raid0b     none    swap    sw               0 0
/dev/raid0e     /home   ffs     rw,log,noatime   1 2
kernfs          /kern   kernfs  rw
ptyfs           /dev/pts        ptyfs   rw
procfs          /proc   procfs  rw
/dev/cd0a       /cdrom  cd9660  ro,noauto

Avant de redémarrer, quelques modifications sont à effectuer. La swap doit être désactivée pour le prochain démarrage afin d’empêcher l’erreur de parité du RAID :

netbsd# cat >> /mnt/etc/rc.conf << EOF
swap_off=YES
EOF

Le MBR doit être écrit sur sd1, ce qui permettra de démarrer le système lorsque sd0 ne fonctionne plus :

netbsd# /usr/sbin/installboot -v /dev/rsd1a /usr/mdec/bootxx_ffsv2

Reste à activer le flag d’autoconfiguration du RAID pour son activation au prochain démarrage :

netbsd# raidctl -A -root raid0

A présent, le système peut être redémarré sur le RAID. Mais il ne faut plus utiliser la commande reboot qui démonte mal la swap, ce qui entrainerait une reconstruction du RAID au boot suivant. Il faut  utiliser à la place shutdown :

netbsd# shutdown -r now

Etape 5 : premier démarrage en RAID

Les partitions RAID doivent être utilisées :

netbsd# df -h
Filesystem        Size       Used      Avail %Cap Mounted on
/dev/raid0a       3.9G       175M       3.5G   4% /
/dev/raid0e       2.9G       2.9M       2.8G   0% /home
kernfs            1.0K       1.0K         0B 100% /kern
ptyfs             1.0K       1.0K         0B 100% /dev/pts
procfs            4.0K       4.0K         0B 100% /proc

netbsd# swapctl -l
Device      512-blocks     Used    Avail Capacity  Priority
/dev/raid0b    2097152        0  2097152     0%    0

netbsd# raidctl -s raid0
Components:
 component0: failed
 /dev/sd1a: optimal
No spares.
component0 status is: failed.  Skipping label.
Component label for /dev/sd1a:
 Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
 Version: 2, Serial Number: 200910, Mod Counter: 60
 Clean: No, Status: 0
 sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
 Queue size: 100, blocksize: 512, numBlocks: 16777088
 RAID Level: 1
 Autoconfig: Yes
 Root partition: Yes
 Last configured as: raid0
Parity status: DIRTY
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

Le RAID est dégradé et le premier disque peut enfin être intégré. Il faut en premier lieu lui écrire sa table de partition RAID, identique à celle du second disque :

netbsd# disklabel -R -r /dev/sd0 /root/disklabel.sd1

L’ajout du disque au RAID s’effectue de cette façon :

netbsd# raidctl -a /dev/sd0a raid0
netbsd# raidctl -F component0 raid0

L’état de la reconstruction peut être affichée en temps réel :

netbsd# raidctl -S raid0
Reconstruction is 21% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.
Reconstruction status:
 91% |************************************   | ETA:    00:01

netbsd# raidctl -s raid0
Components:
 component0: spared
 /dev/sd1a: optimal
Spares:
 /dev/sd0a: used_spare
component0 status is: spared.  Skipping label.
Component label for /dev/sd1a:
 Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
 Version: 2, Serial Number: 200910, Mod Counter: 61
 Clean: No, Status: 0
 sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
 Queue size: 100, blocksize: 512, numBlocks: 16777088
 RAID Level: 1
 Autoconfig: Yes
 Root partition: Yes
 Last configured as: raid0
Component label for /dev/sd0a:
 Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
 Version: 2, Serial Number: 200910, Mod Counter: 61
 Clean: No, Status: 0
 sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
 Queue size: 100, blocksize: 512, numBlocks: 16777088
 RAID Level: 1
 Autoconfig: Yes
 Root partition: Yes
 Last configured as: raid0
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

Une fois la reconstruction complète, le MBR est à regénérer sur le premier disque :

netbsd# /usr/sbin/installboot -v /dev/rsd0a /usr/mdec/bootxx_ffsv2

Le RAID1 est opérationnel.

Haut de page