Ceci est une ancienne révision du document !
Table des matières
Installation Linux
Mes droits
# adduser thierry adm
Ce qui me permet au moins de pour consulter /var/log/syslog
# adduser thierry staff
C'est bien aussi.
Premiers pas dedans
Mes modules Perl dans **/usr/local/lib/site_perl**
Faire perl -V pour verifier.
# mkdir /usr/local/lib/site_perl ( drwxr-sr-x 2 root staff 4096 2006-10-13 15:45 site_perl ) # chmod g+w /usr/local/lib/site_perl
Le groupe staff peut ecrire dedans.
Vi en editeur pour crontab
Editer ~/.bashrc et ajouter:
export EDITOR=/usr/bin/vim
Ou mieux, pour l'ensemble du systeme, editer /etc/profile et ajouter:
export EDITOR=/usr/bin/vim
SSH
Voir ici : SSH
exim4
Reconfigurer pour que les mail pour root vont a un user qui peut lire sur son mail ordinaire.
# dpkg-reconfigure exim4-config -> Smarhost et pas de distribution locale ... mettre le SMTP qui va bien.
Puis editer /etc/aliases pour avoir a la fin:
... root: adresse_mail@diodsidso.fr
Faire un test:
echo "hello world" | mail -s "test" root@localhost
lspci
Parfois utile, la commande lspci est installé par:
# apt-get install pciutils
Ctrl+Alt Suppr
Desactiver le reboot d'un serveur:
Editer /etc/inittab
et commenter la ligne comme ça:
#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Pour que la modification soit prise en compte immediatement (et pas seulement au prochain boot), faire:
# init q
Et voila.
Disk SATA en RAID
Je me suis trés fortement inspiré du lien ci-dessous
Lien:
http://xtronics.com/reference/SATA-RAID-debian-for-2.6.html
Mais il y a aussi:
http://marc.theaimsgroup.com/?l=linux-raid&m=108571782912454&w=2
Actuellement, il n'est pas possible de configurer un RAID fonctionnel avec des disks SATA au moment de l'installation de debian: y a un bug !!!!!!!
Donc, il faut installer le RAID
aprés l'installation.
Installation de Debian
On installe Debian en prevoyant qu'on va faire du RAID. Ca me parait mieux ainsi.
On suppose qu'on veut faire du RAID 1 et qu'on a donc de 2 disks: sda et sdb
Le partitionnage des disks:
sda:
Partition Primaire: sda1: /boot ext3 256 MB Partition Logique: sda5: swap 3 GB (pour 1 GB de RAM) Partition Logique: sda6: / ext3 le reste du disk
sdb:
Même decoupage, mais le systeme de fichier en 'Linux raid autodetect'
Il peut être utile de marquer les partitions sda1 et sdb1 comme bootable.
Ce qui donne a peu pres:
Disk /dev/sdb: 81.9 GB, 81964302336 bytes 255 heads, 63 sectors/track, 9964 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 * 1 31 248976 fd Linux raid autodetect /dev/sdb2 32 9964 79786822+ 5 Extended /dev/sdb5 32 396 2931831 fd Linux raid autodetect /dev/sdb6 397 9964 76854928+ fd Linux raid autodetect
Une fois l'installation terminé…
Note: on peut partionner autrement… tout dans une seule partition, ca doit etre possible.
mdadm
Au prealable:
Si on veut editer les partitions avant d'installer le RAID, il faut utiliser cfdisk:
# cfdisk /dev/sdb
Non tester: Si on veut copier les partitions existantes d'un disk sur un autre:
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Partition sdb
Donc a demarré le nouveau systeme et on a un disk sda operationnel et sans RAID, et un disk sdb non fonctionnel mais preparer pour le RAID.
Installer les outils:
# apt-get install wajig # wajig install mdadm # wajig install rsync
wajig fait apt-get install … mais avec un je ne sais quoi de mieux…?
a verifier: En fait, je crois qu'on pourrait faire la même chose sans wajig, mais le probleme c'est que apt-get install mdadm met immediatement en place le RAID alors que ce n'est pas ce qu'on souhaite a ce moment là. (Peut être faut-il partitionner le disk aprés l'installation de mdadm)
A installer aussi:
# apt-get install initrd-tools
Sinon, on pourra pas utiliser mkinitrd plus tard…
Creer les volumes RAID:
# mdadm -Cv /dev/md0 -l1 -n2 missing /dev/sdb1 # mdadm -Cv /dev/md1 -l1 -n2 missing /dev/sdb5 # mdadm -Cv /dev/md2 -l1 -n2 missing /dev/sdb6
Ce qui est equivalent a (pour la 1er ligne):
# mdadm --create /dev/md0 --level 1 --raid-devices=2 missing /dev/sdb1
Cela a créé 3 RAID 1 dégradé ( /boot swap et /) avec un disk manquant.
#cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb5[1] 979840 blocks [2/1] [_U]
md0 : active raid1 sdb1[1] 192640 blocks [2/1] [_U]
md2 : active raid1 sdb6[1] 159661888 blocks [2/1] [_U]
unused devices: <none>
Creer les systemes de fichiers et les mounter
# mkfs.ext3 /dev/md0 # mkfs.ext3 /dev/md2 # mkswap /dev/md1
En ext3 ou autres d'ailleurs… mais ce sera en ext3.
Pour nos manipulation ultérieur, on prépare des choses:
# mkdir /mntroot # mkdir/mntboot # mount /dev/md2 /mntroot # mount /dev/md0 /mntboot
Preparer **initrd**
initrd est le ce qui chargé au moment du boot dans un (temporaire) Ram Disk.
Pour les disks SATA, soyons attentif a ça: editer le fichier /etc/mkinitrd/mkinitrd.conf et modifier:
MODULES=most
en
###MODULES=most MODULES=dep
et
ROOT=probe
en
###ROOT=probe ROOT="/dev/md2 ext3"
Et maintenant, examinons le repetoire /boot (ou uname -r) pour savoir comment nommé les fichiers:
# uname -r 2.6.17-2-686 # ls /boot -la ... -rw-r--r-- 1 root root 4629674 2006-11-16 13:52 initrd.img-2.6.17-2-686 ...
Donc on fait: maintenant:
# mkinitrd -o /boot/initrd.img-2.6.17-2-686-md 2.6.17-2-686
Editer **/boot/grub/menu.lst** :
A partir la copie d'un modele: (Par exemple)
title Debian GNU/Linux, kernel 2.6.17-2-686 root (hd0,0) kernel /vmlinuz-2.6.17-2-686 root=/dev/sda6 ro initrd /initrd.img-2.6.17-2-686 savedefault boot
On fait les modifications suivante:
title Debian GNU/Linux, kernel 2.6.17-2-686-md Disk1 root (hd0,0) kernel /vmlinuz-2.6.17-2-686 root=/dev/md2 ro initrd /initrd.img-2.6.17-686-md savedefault boot
Et a partir de ce nouveau block faire une copie et apporter les modifications suivantes:
title Debian GNU/Linux, kernel 2.6.17-2-686-md Disk2
root (hd1,0) kernel /vmlinuz-2.6.17-2-686 root=/dev/md2 ro initrd /initrd.img-2.6.17-686-md savedefault boot
(Re)generer un fichier **/etc/mdadm/mdadm.conf** :
Editer /etc/mdadm/mdadm.conf et avoir pour seule ligne dans le fichier:
DEVICE /dev/sda* /dev/sdb*
Ensuite faire:
# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Tout copier sur le disk RAID dégradé
# rsync -auHxv --exclude=/proc/* --exclude=/sys/* --exclude=/boot/* --exclude=/mntboot --exclude=/mntroot/ /* /mntroot/ # mkdir /mntroot/proc /mntroot/boot /mntroot/sys # chmod 555 /mntroot/proc # rsync -auHx /boot/ /mntboot/
Faire des modifications dans **/mntroot/etc/fstab**:
Les changements sont en bleu:
/etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/md2 / ext3 defaults,errors=remount-ro 0 1 /dev/md0 /boot ext3 defaults 0 2 /dev/md1 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Reboot !
On devrait pouvoir booter sur le RAID … Disk1, sinon, on peut encore faire un autre choix.
Si tout va bien, on continue.
Attacher le disk original...
D'abord, on change les types des partitions de sda en Linux raid autodetect (FD)
# cfdisk /dev/sda ... changer le type des partitions en **FD**
Puis on attache:
# mdadm /dev/md0 -a /dev/sda1 # mdadm /dev/md1 -a /dev/sda5 # mdadm /dev/md2 -a /dev/sda6
Verifions que ca marche (exemple):
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sda1[0] sdb1[1] 192640 blocks [2/2] [UU]
md1 : active raid1 sda5[0] sdb5[1] 979840 blocks [2/2] [UU]
md2 : active raid1 sda6[2] sdb6[1] 159661888 blocks [2/1] [_U] [===>.................] recovery = 17.9% (28697920/159661888) finish=56.4min speed=38656K/sec unused devices: <none>
Et aprés quelques longues minutes:
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1] 192640 blocks [2/2] [UU]
md1 : active raid1 sda5[0] sdb5[1] 979840 blocks [2/2] [UU]
md2 : active raid1 sda6[2] sdb6[1] 159661888 blocks [2/2] [UU]
unused devices: <none>
Regenerer initrd
Oui, il faut aboslument faire ca apres que le RAID est OK, sinon, il sera toujours degradé et recontruit a chaque mise a jour du noyau.
# mkinitrd -o /boot/initrd.img-2.6.17-2-686-md 2.6.17-2-686
Regenerer **/etc/mdadm/mdadm.conf** :
Editer /etc/mdadm/mdadm.conf et avoir pour seul ligne de texte:
DEVICE /dev/sda* /dev/sdb*
Et puis faire:
# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Au final on a un fichier qui ressemble a ça:
DEVICE /dev/sda* /dev/sdb* ARRAY /dev/md0 level=raid1 num-devices=2 UUID=4d58ade4:dd80faa9:19f447f8:23d355e3
devices=/dev/sda1,/dev/sdb1
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=3f1bdce2:c55460b0:9262fd47:3c94b6ab
devices=/dev/sda5,/dev/sdb5
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=7dfd7fcb:d65245d6:f9da98db:f670d7b6
devices=/dev/sdb6,/dev/sda6
Configurer **grub** pour booter sur les 2 disks
Install the MBR on the second disk
# grub --device-map=/boot/grub/device.map >> root (hd0,0) >> setup (hd0) >> root (hd1,0) >> setup (hd1) >> quit
Faire en sorte que grub designe MD comme periphérique root. (Attention, le simple '#' n'est pas un commentaire !!!!)
Editer /boot/grub/menu.lst et transformer:
# kopt=root=/dev/sda6 ro
en
# kopt=root=/dev/md2 ro
Re-configurer le daemon mdadm:
# dpkg-reconfigure mdadm
Et je crois que cette opération regenere encore un initrd plus clean, avec le nom original (c'est a dire sans -md a la fin)
Reboot et nettoyage
Rebooter pour voir si tout va bien…
Faire une copie de sauvegarde de menu.lst:
# cp /boot/grub/menu.lst /boot/grub/menu.lst-old
Puis faire:
# update-grub
Cela regenere un fichier menu.lst propre. Mais les choix pour booter sur le initrd…md a disparu. Par securite et a partir de menu.lst-old, remettre les choix …Disk1 et …Disk2 ceci fait: rebooter.
Si tout va bien, alors on peut refaire un update-grub et effacer les images initrd…md et toutes references a ce fichier: sinon, on peut encore rebooter en choissisant …Disk1.
**mdadm** trucs...
Voir l'etat des RAID
# cat /proc/mdstat
Voir les details
# mdadm --detail /dev/md0
Ajouter un disk au RAID
# mdadm /dev/md0 --add /dev/sda1
Casser un RAID en retirant un disk
# mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1
(non testé) arreter et liberer toutes les ressources
# mdadm --stop /dev/md0
Voir: man mdadm
–Fin.–
FakeRaid
La plupart des systemes RAID gerer au niveau du BIOS avec des disks serial ATA sont des FakeRaid
https://wiki.ubuntu.com/FakeRaidSpechttps://help.ubuntu.com/community/FakeRaidHowto
C'est dire qu'ils se comportent comme des Raid Hardware, sans en etre vraiment.
Et surtout, ils ne sont pas toujours reconnu par Linux, qui a defaut, voit toujours les disks physiques composant le RAID, au lieu d'un volume RAID.
supermicro P4SCI
http://www.supermicro.com/products/motherboard/P4/E7210/P4SCi.cfm
Le RAID logiciel avec des disks serial-ATA ne fonctionne pas… C'est expliqué ici:
http://www.gatago.com/linux/debian/maint/boot/22631370.html
On essai le RAID (presque) hardware
Controleur: Adaptec Embedded Serial ATA with HostRAID
Puce (supposé): Intel E7210
SATA RAID→P4SCI→“Hance Rapids”→ Adaptec
ICH5R Hance Rapids
Ce qui m'amene au FakeRaid.
A priori, il n'y aurait qu'ubuntu-server pour me sauver.
Ni Debian, ni Ubuntu ne reconnaissent ce FakeRaid.
poweredge 860 RAID
Liens:
http://linuxmafia.com/faq/Hardware/sas.html
Pistes:
SAS 5i/R or PERC 5/e PERC=Power Edge RAID Controler LSI Logic MegaRAID card megaraid_sas driver
# lsmod | grep sas mptsas 22476 2 mptscsih 21504 1 mptsas mptbase 46208 3 mptctl,mptsas,mptscsih scsi_transport_sas 20512 1 mptsas scsi_mod 123080 4 sd_mod,mptsas,mptscsih,scsi_transport_sas
Mais encore:
# lsmod | grep mpt mptctl 22500 0 mptsas 22476 2 mptscsih 21504 1 mptsas mptbase 46208 3 mptctl,mptsas,mptscsih scsi_transport_sas 20512 1 mptsas scsi_mod 123080 4 sd_mod,mptsas,mptscsih,scsi_transport_sas
Installons quelques outils:
# apt-cache search mpt-status
Comme mpt-status retourne une erreur, il faut faire aussi:
# modprobe mptctl
Ce qui crée un device ici: /dev/mptctl, et enfin:
# mpt-status ioc0 vol_id 0 type IM, 2 phy, 73 GB, state OPTIMAL, flags ENABLED ioc0 phy 1 scsi_id 32 ATA ST380819AS 8.05, 74 GB, state ONLINE, flags NONE ioc0 phy 0 scsi_id 1 ATA ST380819AS 8.05, 74 GB, state ONLINE, flags NONE
Normalement, un daemon tourne, mais il tourne mal parce qu'il laisse des zombies… Donc j'ai modifié /etc/init.d/mpt-statusd pour avoir ça:
#if ! [ -d "/proc/scsi/mptspi" ] ; then if ! [ -d "/proc/scsi/mptsas" ] ; then
Parce que le test en commentaire ne fonctionne pas… je ne sais pas ce que cela signifie.
–