{{tag>hardware nas odroid linux}} ====== Odroid XU4Q: NAS ====== Principales fonctions: * Stockage des données via NFS/RAID1 * Sauvegarde des hôtes via Bareos * Centralisation des logs via ELK ===== Raid ===== Choix d'un raid 1 logiciel (miroir): Le plus simple à restaurer en cas de défaillance. apt-get install mdadm ==== Préparer les disques ==== Création d'une table GPT avec une seule partition: apt-get install parted Pour chacun des deux disques, depuis **parted** en mode interactif: (parted) mkpart primary 0% 100% (parted) name 1 raid1 (parted) set 1 raid on Les commandes suivantes permettent: * de créer une seule partition s'étendant sur tout le disque; * de nommer la partition raid1 * d'activer le drapeau raid La commande print permet de vérifier les changements apportés: (parted) print Model: TOSHIBA External USB 3.0 (scsi) Disk /dev/sdb: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 4001GB 4001GB raid1 raid ==== Création du volume RAID ==== Assembler les partitions en un volume RAID1: mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 Déclarer le nouveau groupe RAID dans le fichier de configuration afin qu'il soit automatiquement reconstruit au prochain redémarrage: mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf update-initramfs -u Pour davantage de détails concernant la gestion du RAID logiciel sous gnu/linux confère wiki [[sysadmin:linux:raid:raid-logiciel]]. si l’hôte est redémarré avant la fin de la synchronisation des disques et qu'elle ne reprend pas, voir wiki [[sysadmin:linux:raid:troubleshooting]]. ===== lvm ===== On définit un volume physique LVM sur le Raid logiciel: pvcreate /dev/md0 Après cette opération, un nouveau volume physique est disponible, il doit être listé par: pvscan On rattache le volume physique LVM à un groupe de volume LVM: vgcreate vgdata /dev/md0 Création de trois volumes logiques LVM: userdata, backup et log: lvcreate --size 1T --name userdata vgdata lvcreate --size 1T --name backup vgdata lvcreate --size 20G --name log vgdata ===== Création des systèmes de fichiers ===== Création des systèmes de fichiers mkfs.ext4 /dev/vgdata/userdata tune2fs -m 0 /dev/vgdata/userdata mkfs.ext4 /dev/vgdata/backup tune2fs -m 0 /dev/vgdata/backup mkfs.ext4 /dev/vgdata/log tune2fs -m 1 /dev/vgdata/log ===== Montages ===== ===== Centralisation des logs ===== rsyslog ===== elasticsearch ===== Les paquets par défaut d'elasticsearch incluent la JVM pour des architectures x86 ou amd64 non compatibles avec la Odroid XU4Q. On installe la JRE compilée pour ARM # installation de la machine virtuelle java apt-get install default-jre Modifier /etc/profile export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::") export PATH=$JAVA_HOME/bin:$PATH Ici on récupère une version sans la JRE: wget "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-no-jdk-amd64.deb" Les dépendances du paquet peuvent être listées via: dpkg-deb --info elasticsearch-7.7.0-no-jdk-amd64.deb Ici nous forçons l'installation du paquet sans tenir compte de la dépendance à la libc6. dpkg --force-all --ignore-depends=libc6 -i elasticsearch-7.7.0-no-jdk-amd64.deb Apres installation, afin d'eviter les erreurs de dépendances lors de l'installation de nouveaux paquetages via apt, modifier le fichier **/var/lib/dpkg/status** Retrouver le package elasticsearch, et supprimer la dépendance libc6 sur la ligne **Depends:** mkdir /srv/elasticsearch chmod 750 elasticsearch chown elasticsearch:elasticsearch elasticsearch/ lvcreate --size 40G --name elasticsearch vgdata mkfs.ext4 /dev/vgdata/elasticsearch tune2fs -m 0 /dev/vgdata/elasticsearch modifier le fichier configuration de l'unité systemd: ==== Troubleshooting ==== Lors du lancement du service via systemd, les journaux retournent les messages suivants: Il est possible de récupérer le jar wget -P /usr/share/elasticsearch/lib/ "https://repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.1/jna-4.5.1.jar" Les disques s'arrêtent après quelques minutes d'inactivité: hdparm permet de désactiver l'economie d'energie (APM) et l'arret de la rotation des disques: hdparm -B 255 -S 0 /dev/sdb ===== Partage NFS ===== apt-get install nfs-kernel-server ===== Sécurité ==== création d'un compte utilisateur local et désactivation du compte odroid présent par défaut: adduser john usermod --append --groups adm john le groupe adm permettra a l'utilisateur john d'accéder aux privilèges root (sudo). Installation/activation ufw ===== Références ===== * https://discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599 * https://discuss.elastic.co/t/elasticsearch-7-x-support-for-arm64-raspberry-pi-4-b/187976 * https://discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599/9 * https://www.elastic.co/guide/en/elasticsearch/reference/current/executable-jna-tmpdir.html