Debian-Serveur: Passer de RAID1 à RAID10

14/02/2010

Cet article est plus ou moins identique au précédent à la différence qu’il part du principe que vous disposez d’un système de RAID1 déjà fonctionnel avec de précieuses données.

On dispose d’un système de RAID1 (/dev/md0) avec deux disques dur (/dev/sda et /dev/sdb).

Lorsque l’on regarde l’état de notre système:

cat /proc/mdstat

On a quelque chose comme ça:

Personalities : [raid1] [raid0]

md0 : active raid1 sda1[0] sdb1[1]
1953519744 blocks [2/2] [UU]

unused devices: <none>

Dans un premier temps on crée une partition de type « FD » sur l’un et la copie sur l’autre (voir l’article précédant pour plus d’infos).

Puis on crée notre deuxième système de RAID1 avec nos tous nouveaux disques dur tous neufs (/dev/sdc et /dev/sdd):

sudo mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdb1

On enlève un des disques dur du RAID1 précédent qui contient nos précieuses données:

sudo mdadm --manage /dev/md0 --fail /dev/sda1 --remove /dev/sda1

On crée un nouveau système de RAID0 cette fois-ci contenant nos deux autres systèmes de RAID1:

sudo mdadm --create /dev/md2 --level=raid0 --raid-devices=2 /dev/md0 /dev/md1

On le formate comme il se doit et on le monte:

sudo mkfs.ext3 /dev/md2

Grâce a un « watch cat /proc/mdstat » on attends que la synchronisation soit faite et on continu.

On monte notre système de RAID10.

sudo mkdir /mnt/md2
sudo mount /dev/md2 /mnt/md2

On monte le disque dur que l’on a enlevé précédemment:

sudo mkdir /mnt/sda1
sudo mount -t ext3 /dev/sda1 /mnt/sda1

On copie les données dans notre système RAID10

cp -vR /mnt/sda1/* /mnt/md2

Une fois la copie terminé, on ajouter le disque dur /dev/sda1 à sa place de départ:

sudo mdadm --manage /dev/md0 --add /dev/sda1

Et voilà, tout devrait fonctionner correctement. À noter que c’est seulement pour les données des disques dur, si vous voulez aussi que la partie bootable de vos disques fonctionne, je vous renvoie à ce super tuto.

Author: Gagou7 Categories: Non classé Tags:

Debian-Serveur: 4 Disque dur en RAID10

12/02/2010

J’ai un système de mirroring qui est déjà en place (RAID1) avec deux disque dur de 1 To. Mon objectif est de passer en RAID10 avec deux disques dur de 1 To en plus pour un total de place utilisable de 2 To.

Pour faire du RAID10, y a plusieurs solutions:

- Utiliser l’option --level=raid10 de mdadm et spécifier les quatre disques dur à monter en RAID10
- Toujours avec mdadm, créer deux périphériques de type RAID1 et les inclure dans un RAID0
- Avec mdadm, créer deux périphériques de type RAID1 et les « agglomérer » en un seul avec LVM

Un poste de linuxquestions.org très intéressant.

Pour ma part, le raid10 avec mdadm est plus facile a mettre en oeuvre, mais déstabilisant car on ne sait pas vraiment quelles sont les disques en RAID1 et RAID0. De plus, lorsque l’on retire et ajoute un nouveau, c’est pas très clair. LVM je ne connais pas et si je peux tout faire avec un seul programme, je trouve ça mieux. C’est pour cela que j’ai opté pour la solution « deux RAID1 dans un RAID0″ que je vais décrire ci-dessous.

Créer les partitions

J’ai quatre disque dure de 1 To (sda, sdb, sdc et sdd). On crée une partition:

sudo cfdisk /dev/sda

Vous sélectionner « New », puis « Primary » et laisser par défaut la taille si vous voulez prendre une partition sur tous le disque dur. Aller ensuite dans « Type » et appuyer sur Enter jusqu’à arriver a « Enter filesystem type: » (si vous êtes en plein écran, il n’y aura pas besoin d’appuyer sur Enter). Entrer comme type de partition « FD » puis Enter. Finalement, aller dans « Write », répondez par « yes » et attendez qu’il ait finit. Enfint « Quit » pour ressortir.

Votre première partition est prête, il faut maintenant que les autres disques dur aient le même partition. Faites alors ceci:

sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb
sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdc
sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdd

Créer les périphériques RAID1

Toute vos partition sont prête, il suffit de créer les deux système de RAID 1.

sudo mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda /dev/sdb
sudo mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdb /dev/sdc

Créer le périphérique RAID0

Il suffit de créer un système de RAID0 et d’y inclure les deux RAID1 précédemment créé.

sudo mdadm --create /dev/md2 --level=raid0 --raid-devices=2 /dev/md0 /dev/md1

Formater-le et le tour est joué.

sudo mkfs.ext3 /dev/md2

Vous pouvez dès à présent le monter où vous voulez:

sudo mkdir /mnt/md2
sudo mount /dev/md2 /mnt/md2

Voilà c’est terminé !

Author: Gagou7 Categories: Non classé Tags:

Debian-Serveur: Partage de dossier pour Windows avec Samba

11/02/2010

J’ai décidé de créer un partage sur mon serveur accessible via un poste Windows. Il a fallut configurer Samba et tous les petites bricoles. Pour la base de la configuration, je vous renvoie à ce site.

Normalement cela suffit, mais chez moi il a fallut faire un apt-get install de konqueror et de samba avant tous ça.

De plus, je cherchais à faire une partie privée et publique. J’ai cherché et essayé pendant de long moment et finalement voici la solution.

Author: Gagou7 Categories: Non classé Tags:

[EXPLOIT] Joomla 1.5

18/01/2010

Cet exploit n’est pas très récent et pourtant il y a encore plein de site qui n’ont pas effectué de mise à jour. Pour les trouvés (ceux en français) il suffit de taper ceci dans google:

"Animé par joomla" inurl:index.php?option=com_user

Ensuite, les sites exploitables sont ceux dont le titre dans la recherche Google est différent de "Enregistrement","Mot de passe oublié?", "Identifiant oublié?","Créer un compte","Connexion",… En gros, il faut que ça soit un titre relatif au site.

Author: Gagou7 Categories: Non classé Tags:

[C] Permuter deux bits

11/01/2010

Voici un petit code en C qui permet de permuter deux bits en une seule ligne. Je l’utilisais lorsque je codais sur un système embarqué, peut-être que ça en aidera d’autres. Bref, le voici:

#include
#include
#include
#include

//0xA8 = b10101000
//0xB0 = b10110000 after permute bit 3 with bit 4

int main()
{
unsigned char* SCICR1;
*SCICR1 = 0xA8;

printf("%x\n", *SCICR1);

*SCICR1 = (*SCICR1&0xE7)|((*SCICR1&0x08)<<1)|((*SCICR1&0x10)>>1);

printf("%x", *SCICR1);
return 0;
}

Author: Gagou7 Categories: Non classé Tags:

Qt Creator : Requête GET

15/12/2009

Bon, je me prends la tête à vouloir récupérer le contenu d’une page html en C++ avec Qt. Pour l’instant j’arrive à récupérer uniquement le header à l’aide de ces codes:

{
QHttp *http = new QHttp(this);
http->setHost("www.gagou.ch");
http->get("/test/test.html");

connect(http,SIGNAL(readyRead(QHttpResponseHeader)),this,SLOT(read(QHttpResponseHeader)));
}

void example::read(QHttpResponseHeader response)
{
qDebug()<<response.toString();
}

Ou comme ceci:

{
QHttpRequestHeader header = QHttpRequestHeader("GET", "/test/test.html");
header.setValue("Host","www.gagou.ch");

http = new QHttp(this);
http->setHost("www.gagou.ch");
http->request(header);

connect(http,SIGNAL(requestFinished(int,bool)),this,SLOT(requestFinished(int,bool)));
}

void example::requestFinished(int a, bool b)
{
qDebug()<<http->lastResponse().toString();
}

[EDIT] Finalement j’y suis arrivé, je cherchais à la mauvaise place, c’est pas QHttp mais QNetworkAccessManager qu’il faut utiliser:

{
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(requestFinished(QNetworkReply*)));

manager->get(QNetworkRequest(QUrl("http://www.megaupload.com/?d=DHW86DGI")));
}

void example::requestFinished(QNetworkReply *reply)
{
qDebug()<<reply->readAll();

}

Author: Gagou7 Categories: Non classé Tags:

Manque de temps

08/12/2009

Voili voilou, je sais que ça fait longtemps que j’ai plus posté grand chose, mais ça va revenir… En effet, en ce moment j’ai quelques projets à faire pour l’école et des examens qui pointent gentiment le bout de leur nez. Du coup, j’ai laissé tomber provisoirement mon passage sous Debian sur mon notebook parce que je suis pas assez performant et j’ai pas le temps de me prendre la tête pour des problèmes d’adaptations Windows->Linux.

Author: Gagou7 Categories: Non classé Tags:

Debian: wget

10/11/2009

Un poste de plus pour vous montrer comment faire passer « wget » par un proxy. C’est tout simple, il suffit de créer un fichier « .wgetrc » à la racine de votre compte contenant ceci:

http_proxy = http://proxy.he-arc.ch:8080
use_proxy = yes
wait = 15

Author: Gagou7 Categories: Non classé Tags:

Debian: Recherche ultra-rapide

06/11/2009

Si vous ne savez plus où se trouve tel ou tel fichier, il existe la commande « find ». Elle n’est pas différente des autres commandes, elles parcourt l’arborescence de votre disque dur à la recherche du terme que vous lui avez donné ce qui peut prendre pas mal de temps.

Mais il existe une commande qui recherche dans une base de donné qui a été au préalable remplis de tous les noms de fichiers et chemins que contient votre disque dur. Cette commande s’appelle « locate » et est lié à la commande « updatedb » qui met à jour la base de donnée. Elle s’utilise simplement comme ça:

locate <nom_de_fichier>

Et hop, en moins d’une seconde elle affiche tout ce qu’elle a trouvé ! Bien entendu si vous ne connaissez pas le nom du fichier, vous pouvez en spécifier qu’une partie.

N’oubliez pas de mettre à jour régulièrement la base de donnée (après installations/désinstallations de programme par exemple).

sudo updatedb

Author: Gagou7 Categories: Non classé Tags:

Debian: Icône d’un programme

06/11/2009

Je ne sais pas pourquoi, mais lorsque j’ai compilé et installé la dernière version de VLC, je n’avais aucune icône ! Après quelques recherches, les icônes sont stockés dans « /usr/share/pixmap ». Etant donné qu’il n’y avait pas d’icône « vlc.png », je l’ai simplement ajouté par ces quelques lignes de commande:

sudo cp /usr/local/share/vlc/vlc48×48.png /usr/share/pixmap

sudo mv /usr/share/pixmap/vlc48×48.png /usr/share/pixmap/vlc.png

Author: Gagou7 Categories: Non classé Tags: