1 - Matériel
1.1 - Boitier
InWin : IW-MS04
1.2 - Carte mère
MSI : MS-S0891-010
1.3 - CPU
1.4 - Refroidissement
Akasa : AK-CC7108EP01
1.5 - Accessoires divers
Convertisseur USB2 (carte mère) vers USB3 (boitier)
1.6 - Mémoire
2x2Go DDR3 ECC
1.7 - SSD système
Kingston SSDNow V+200 - 120 Go
1.8 - Disques durs
4x2To Western Digital Green
10 Gb Chelsio N320E Dual Port (cc2-n320e-sr)
1.10 - Sauvegarde locale
WD My Book Home Edition 1 TB USB 2.0/FireWire 400/eSATA Desktop External Hard Drive
1.11 - Onduleur
1.12 - Évolutions programmées
4x6To Western Digital Red
Installation Debian 9
2.1 - ISO
Je fais une installation via une iso netinstall
Download de l’ISO : page officiel de Debian
2.2 - Installation
3 - Configuration post installation (root)
3.1 - Réseau
/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# 1Gb
# enp3s0 on
# enp4s0 off
allow-hotplug enp3s0
iface enp3s0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
# Chelsio 10G
# enp1s0 off
# enp1s0d1 on
allow-hotplug enp1s0d1
iface enp1s0d1 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
3.2 - Installation des paquets utiles pour le serveur
apt-get install xfsprogs gdisk sudo htop hddtemp nmon lm-sensors mdadm smartmontools samba samba-common smbclient nfs-kernel-server locate vim python-dev python-pip cron-apt curl gnupg2 libc-ares2 libcrypto++6 libmediainfo0v5 libpcrecpp0v5 libzen0v5 apt-transport-https firmware-misc-nonfree -y
3.3 - Ajout d’un utilisateur au groupe sudo
adduser utilisateur sudo
3.4 - Authentification SSH par clef
J’utilise pour utilisateur l’authentification par clé SSH
Créer le répertoire et le fichier pour inscrire la clef ssh de l’utilisateur
mkdir /home/utilisateur/.ssh
touch /home/utilisateur/.ssh/authorized_keys
Ensuite, inscrire sa clé public ssh dans /home/utilisateur/.ssh/authorized_keys
3.5 - Mise à jour du microcode CPU
La carte mère n’a pas de BIOS/UEFI récent. Donc, va falloir mettre à jours le microcode pour Spectre et Meltdown.
Il faut télécharger sur le site d’intel l’archive qui contients les microcodes: [https://downloadcenter.intel.com/download/27945?v=t
](https://downloadcenter.intel.com/download/27945?v=t)L’archive se nomme : microcode-20180703.tgz et sera mis dans mon dossier root.
Avant de commencer la mise à jour, voir quelle version est installé :
root@srv01-nas:~# dmesg | grep -i microcode
[ 1.984753] microcode: sig=0x306c3, pf=0x2, revision=0x17
[ 1.984868] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
root@srv01-nas:~# grep microcode /proc/cpuinfo
microcode : 0x17
microcode : 0x17
microcode : 0x17
microcode : 0x17
Procédons à la mise a jours, je décompresse l’archive dans un répertoire que je crée et nomme firmware. L’archive microcode-20180703.tgz est mon root.
mkdir firmware
cd firmware
tar xvf /root/microcode-20180703.tgz
Vérifier que le répertoire suivant existe : /sys/devices/system/cpu/microcode/reload exits
ls -l /sys/devices/system/cpu/microcode/reload
Copie des fichiers de microcode
cp -v intel-ucode/* /lib/firmware/intel-ucode/
Bla bla de la mise à jours au boot
echo 1 > /sys/devices/system/cpu/microcode/reload
Update de l’initamfs
update-initramfs -u
reboot
Vérification que la mise à jour est bien appliquée
root@srv01-nas:~# dmesg | grep -i microcode
[ 0.000000] microcode: microcode updated early to revision 0x24, date = 2018-01-21
[ 1.986878] microcode: sig=0x306c3, pf=0x2, revision=0x24
[ 1.987022] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
root@srv01-nas:~# grep microcode /proc/cpuinfo
microcode : 0x24
microcode : 0x24
microcode : 0x24
microcode : 0x24
3.6 - Monitoring via Glances (facultatif)
Glances est un script python créé par le français Nicolargo. Installation de Glances via pip :
pip install glances
Pour mettre à jour Glances par la suite :
pip install -- update glances
Utiliser Glances
glances
3.7 - Antivirus Clamav (facultatif)
Installation des paquets
apt-get install clamav
Stopper le service pour mettre a jours la base
service clamav-freshclam stop
Mise à jour
freshclam
ClamAV update process started at Thu Jun 28 13:02:46 2018
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99.4 Recommended version: 0.100.0
DON'T PANIC! Read http://www.clamav.net/documents/upgrading-clamavDownloading main.cvd [ 51%]
3.8 - Réinitialisation des disques
Dans mon cas, les disques durs ont déjà été utilisés. Le plus simple est de détruire l’ancienne table de partitionnement GPT.
Liste des disques durs
fdisk -l
Disque en GPT , mise à zero
gdisk /dev/sdX
- x pour le menu des fonction suplémentaire de gdisk
- z pour détruire l’ancienne table de partitionnement GPT
- w pour enregistrer les changements et quitter gdisk
3.9 - Préparation des disques avec une partition Linux RAID
Liste des disques durs
fdisk -l
Disque en GPT et partition Linux RAID
gdisk /dev/sdX
- o pour créer une nouvelle table de partition GPT puis sur Entrée
- n pour créer une nouvelle partition. Pour le numéro de partition, laissez par défaut
- First Sector, par défaut
- Last sector, par défaut
- code de la partition (Linux RAID) : fd00
- w pour enregistrer les changements et quitter gdisk
3.10 - Création du raid 10 via mdadm
Dans mon cas, je ne prépare pas les disques, ni de LVM. Je laisse mdadm ce débrouiller. Cela n’a aucun impact pour la suite, comme étendre le raid en augmentant la capacité des disques durs.
Création de la grappe raid10
mdadm --create /dev/md0 --name=raid10 --level=10 --raid-devices=4 /dev/sd[b-e]
Contrôle que la grappe raid est en cour de construction
cat /proc/mdstat
Création du filesystem xfs
mkfs.xfs /dev/md0
Point de montage du raid
mkdir /media/raid10
mount /dev/md0 /media/raid10/
Sauvegarde la configuration raid
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
mdadm --examine --scan --verbose >> /etc/mdadm/mdadm.conf
update-initramfs -u -k all
Montage automatique du raid au boot. /etc/fstab
echo “/dev/md0 /media/raid10 xfs defaults 0 0” >> /etc/fstab
3.11 - Configuration exim4
/etc/default/mdadm
START_DAEMON=true
/etc/mdadm/mdadm.conf
MAILADDR xxxxxxxxxx@gmail.com
Relancer le service mdadm pour la prise en charge
/etc/init.d/mdadm restart
Test
mdadm --monitor --scan --test -1
3.12 - Configuration du partage Samba
Ajout d’un utilisateur
smbpasswd -a nom_utilisateur
Créations des dossiers partagés
mkdir /media/raid10/films
mkdir /media/raid10/series
mkdir /media/raid10/musiques
mkdir /media/raid10/documents
mkdir /media/raid10/docs
Rendre accessible un répertoire en lecture écriture sans authentification
chmod 777 /media/docs
Pour restreindre avec des groupes - Créer un groupe
groupadd nom_du_groupe
Attribuer un répertoire a un groupe
chown -R root:nom_du_groupe /media/raid10/documents
chmod -R 770 /media/raid10/documents
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = %h server
netbios name = NAS
dns proxy = no
[network]
# hosts allow = 192.168.0. 127. # ajouté et à modifier selon l'IP du réseau local
# bind interfaces only = yes # mettre "yes" pour utiliser le choix des interfaces (ligne au dessous)
# interfaces = 192.168.0.15/24 # Pour éviter le wifi, on peut mettre à la place de l'IP/masque, le nom de l'interface "eth0:0"
[log]
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
[security]
security = user
map to guest = Bad User
encrypt passwords = true
passdb backend = smbpasswd
obey pam restrictions = no
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
pam password change = yes
[documents]
path = /media/raid10/documents
comment = pour gestion
valid users = @partage
read only = no
browseable = yes
writeable = yes
create mask = 0777
directory mask = 0777
[docs]
path = /media/raid10/docs
comment = Documentaires
browseable = yes
read only = no
create mask = 0777
directory mask = 0777
valid users = nobody
admin users = nobody
guest ok = yes
[films]
path = /media/raid10/films
comment = raid 10
browseable = yes
read only = no
create mask = 0777
directory mask = 0777
valid users = nobody
admin users = nobody
guest ok = yes
[musiques]
path = /media/raid10/musiques
comment = raid 10
browseable = yes
read only = no
create mask = 0777
directory mask = 0777
valid users = nobody
admin users = nobody
guest ok = yes
[series]
path = /media/raid10/series
comment = raid 10
browseable = yes
read only = no
create mask = 0777
directory mask = 0777
valid users = nobody
admin users = nobody
guest ok = yes
3.13 - Installation de Plex
Téléchargement
wget https://downloads.plex.tv/https://downloads.plex.tv/plex-media-server/1.13.3.5223-cd1e0da1b/plexmediaserver_1.13.3.5223-cd1e0da1b_amd64.deb
Installation
dpkg -i plexmediaserver_1.13.3.5223-cd1e0da1b_amd64.deb
Lancement du service
systemctl status plexmediaserver
Interface de management
http://ip:32400/manage
3.14 - Gestion de l’onduleur
Installation
apt-get install apcupsd
Voir si l’onduleur est bien détecté sur le port USB
lsusb
/etc/apcupsd/apcupsd.conf
UPSTYPE usb
UPSCABLE usb
DEVICE
/etc/default/apcupsd
ISCONFIGURED=yes
4 - Gestion du serveur
4.1 - Remplacer disques dur défaillant
Passer le disque dur en défaut pour le retirer
mdadm --manage /dev/md0 --set-faulty /dev/sd**X**
mdadm --manage /dev/md0 --remove /dev/sd**X**
Ajout du disque dur
mdadm --manage /dev/md0 --add /dev/sd**X**
Contrôle de la reconstruction
cat /proc/mdstat
4.2 - Étendre le RAID 10
Ajout de disques dur de plus grande capacité comme la procédure du dessus. Puis étendre le volume raid.
mdadm --grow /dev/md0 --size=max
Étendre le filesystem
xfs_growfs /dev/md0
Example :
/dev/md0:
Version : 1.2
Creation Time : Thu Jun 28 11:23:53 2018
Raid Level : raid10
Array Size : 41910272 (39.97 GiB 42.92 GB)
Used Dev Size : 20955136 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Jun 28 11:48:21 2018
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : near=2
Chunk Size : 512K
Rebuild Status : 1% complete
Name : nas:0 (local to host nas)
UUID : 17a39bf3:d2f61aad:598079f6:dfd5c6d5
Events : 58
Number Major Minor RaidDevice State
4 8 16 0 active sync set-A /dev/sdb
5 8 32 1 spare rebuilding /dev/sdc
6 8 48 2 spare rebuilding /dev/sdd
3 8 64 3 active sync set-B /dev/sde
root@nas:~# mdadm --grow /dev/md0 --size=max
mdadm: component size of /dev/md0 has been set to 62898176K
root@nas:~# xfs_growfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 10475520 to 31449088
root@nas:~# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Jun 28 11:23:53 2018
Raid Level : raid10
Array Size : 125796352 (119.97 GiB 128.82 GB)
Used Dev Size : 62898176 (59.98 GiB 64.41 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Jun 28 11:51:35 2018
State : active, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : near=2
Chunk Size : 512K
Rebuild Status : 27% complete
Name : nas:0 (local to host nas)
UUID : 17a39bf3:d2f61aad:598079f6:dfd5c6d5
Events : 73
Number Major Minor RaidDevice State
4 8 16 0 active sync set-A /dev/sdb
5 8 32 1 spare rebuilding /dev/sdc
6 8 48 2 spare rebuilding /dev/sdd
3 8 64 3 active sync set-B /dev/sde
4.3 - Remplacement carte mère
Contrôle de l’état des disques durs du raid installé précédemment sur une autre carte mère
mdadm --examine /dev/sd[bcde] >> raid.status
Création du fichier de configuration et de son initialisation
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
mdadm --examine --scan --verbose >> /etc/mdadm/mdadm.conf
update-initramfs -u -k all