{{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