Administration Système Stockage · Introduction Différents besoins : I Stocker le système...
Transcript of Administration Système Stockage · Introduction Différents besoins : I Stocker le système...
Administration Système
Stockage
Lucas [email protected]
Licence professionnelle ASRALLAdministration de systèmes, réseaux et applications à base de logiciels libres
Lucas Nussbaum Administration Système - 6 1 / 16
Introduction
Différents besoins :I Stocker le système
� Éventuellement, le système de machines virtuellesI Stocker les données métiers (des utilisateurs et des services)I Sauvegardes
Des compromis à trouver entre :I PerformancesI VolumétrieI CoûtI Fiabilité du support et sécurité des données
Lucas Nussbaum Administration Système - 6 2 / 16
Différents types d’accèsI Bloc (block device)
� En local : partition, disque, volume RAID ou LVM� En réseau, pour accéder à un périphérique distant
Protocoles : NBD, iSCSI, AoE (ATA over Ethernet), Fibre Channel� Pour stocker un système de fichier, une image disque de VM, etc.
I Fichier� Implémenté par un système de fichier (répertoires, permissions, . . . )� Compatible POSIX ; utilisation transparente pour les applications� Local (stocké dans un block device) : ext4, BTRFS, ZFS� Réseau, clients/serveur : NFS, CIFS� Réseau, réparti sur plusieurs serveurs : Lustre, GlusterFS, etc.
I Bases de données (SQL)
I Objet� Usage Cloud : manipulation par des méthodes d’accès spécifiques� Plus contraint par POSIX� Nombreuses solutions, choix en fonction des besoins
F Notamment solutions NoSQL : MongoDB, Cassandra, Redis, . . .
Lucas Nussbaum Administration Système - 6 3 / 16
Matériel 1
I Serveurs classiquesExemple : Dell R730XD avec 12 disques de 8 To = 96 To pour 11 400 e
I Serveur + baie attachée via carte RAID (Direct-Attached Storage)Exemple : Dell PowerVault MD 1400 avec 12 disques 8 To = 96 To pour 9 000 e
I Appliances NAS (Network-Attached Storage) : solution intégrée, exportel’espace de stockage via des protocoles standards (NFS, CIFS, iSCSI)Exemple : Western Digital My Cloud NAS : 4 To pour 190 e
I SAN (Storage Area Network) = réseau local dédié au stockage, souventavec une technologie réseau spécifique (Fibre Channel). Réservé auxtrès gros datacentersExemple : stockage à bandes magnétiques : https://youtu.be/IDgXa0ioVTs
I Software-Defined Storage : réseau de serveurs classiques, aggrégationvia logiciel qui assure la répartition et une vue unifiée (système defichiers distribué, stockage objet, etc.)
1. Tous les coûts et toutes les capacités datent de 2016Lucas Nussbaum Administration Système - 6 4 / 16
Dell R740XD2
Maximum 26 disques, 364 To
Lucas Nussbaum Administration Système - 6 5 / 16
Technologies de disques dursI Compromis entre capacité, performances, coûtI Disques durs (HDD, Hard Disk Drive, Hard Disk, Hard Drive)
� Disques magnétiques + têtes de lecture (pannes assez fréquentes)� Deux formats : 3.5", 2.5" (SFF, serveurs sans gros besoins)� Capacité max : dépend du format (3.5" : 10 To ; 2.5" : 4 To)� Performances :
F Dépend de la vitesse de rotation (de 5 400 à 15 000 tr/min)F Bon en lecture séquentielle, mauvais en lecture aléatoire
� Coût plutôt faible :F 8 To, 7 200 rpm : 441 e; 55 e/ToF 300 Go, 15 000 rpm : 144 e; 480 e/To
I Solid-State Drives (SSD)� Électronique, pas de composants en mouvement� Performances très bonnes, quel que soit le type d’accès� Coût élevé :
F 400 Go : 300 e; 750 e/ToF 1.6 To : 1 500 e; 937 e/To
I De plus en plus : mix SSD + HDD, selon les types de données
Lucas Nussbaum Administration Système - 6 6 / 16
Explorer la topologie : lsblk# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 558.9G 0 disk
|-sda1 8:1 0 3.7G 0 part [SWAP]
|-sda2 8:2 0 14.9G 0 part /
|-sda3 8:3 0 22.4G 0 part
|-sda4 8:4 0 1K 0 part
`-sda5 8:5 0 518G 0 part /tmp
sdb 8:16 0 558.9G 0 disk
sdc 8:32 0 558.9G 0 disk
`-sdc1 8:33 0 558.9G 0 part
sdd 8:48 0 558.9G 0 disk
`-sdd1 8:49 0 558.9G 0 part
sde 8:64 0 558.9G 0 disk
`-sde1 8:65 0 558.9G 0 part
sdf 8:80 0 186.3G 0 disk
`-sdf1 8:81 0 186.3G 0 part
# lsblk -tS
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME NAME HCTL TYPE VENDOR MODEL REV TRAN
sda 0 512 0 512 512 1 cfq 128 128 0B sda 0:0:0:0 disk SEAGATE ST600MM0088 TT31
sdb 0 512 0 512 512 1 cfq 128 128 0B sdb 0:0:1:0 disk SEAGATE ST600MM0088 TT31
sdc 0 512 0 512 512 1 cfq 128 128 0B sdc 0:0:2:0 disk SEAGATE ST600MM0088 TT31
sdd 0 512 0 512 512 1 cfq 128 128 0B sdd 0:0:3:0 disk SEAGATE ST600MM0088 TT31
sde 0 512 0 512 512 1 cfq 128 128 0B sde 0:0:4:0 disk SEAGATE ST600MM0088 TT31
sdf 0 512 0 512 512 0 cfq 128 128 0B sdf 0:0:5:0 disk TOSHIBA PX02SSF020 A4AF
Lucas Nussbaum Administration Système - 6 7 / 16
Analyser et mesurer les performances
I Métriques� Débit en [ lecture, écriture ] X [ séquentiel, aléatoire (random) ]� iops (Input/Output Operations Per Second)
I Outils d’analyse� iostat : statistiques par device (iostat -cdx 1)� pidstat -d 1, iotop : statistiques par processus� blktrace : trace des I/O sur un device (btrace /dev/sda)� strace : trace les appels systèmes d’un processus
I Outils de mesure de performances� dd : tests séquentiels basiques, sur des fichiers ou des devices
écriture : dd if=/dev/zero of=file1 bs=1024k count=1k
lecture : dd if=file1 of=/dev/null bs=1024k� hdparm : mesure directe sur un disque (+ effet du cache)� fio : outil très complet et assez complexe (beaucoup de paramètres,
avec une forte influence sur les résultats)
Lucas Nussbaum Administration Système - 6 8 / 16
Utilisation de fioI Exemple : fio --ioengine=libaio --direct=1 --gtod_reduce=1
--name=test --bs=4k --iodepth=32 --filename=/dev/sde
--size=1000M --readwrite=write
I Agir sur :� --filename=/dev/sde (fichier ou device à tester)� --readwrite : type d’accès (read, write, randread, randwrite)� --size=1000M : taille du test, affecte la durée et la stabilité (caches)
I Contrôler les caches : sdparm --get/clear/set=RCD/WCE /dev/sde
� RCD = Read Cache Disable (par défaut 0, 1 désactive le cache)� WCE = Write Cache Enable (déf : 0 ; ne pas activer si non-ondulé)
I Valeurs typiques : (RCD=0, WCE=0)Test HDD 7200 rpm HDD 10k rpm SSD
read, 1000M 134 Mo/s 206 Mo/s 532 Mo/swrite, 1000M 134 Mo/s 206 Mo/s 198 Mo/s
randread, 200M 2.7 Mo/s, 681 iops 4.2 Mo/s, 1056 iops 532 Mo/s, 132k iopsrandwrite, 200M 2.5 Mo/s, 640 iops 3.1 Mo/s, 781 iops 198 Mo/s, 50k iops
Lucas Nussbaum Administration Système - 6 9 / 16
Dans Linux
I Des systèmes de fichiers : ext4, BTRFS, etc.
I Des drivers de block devices pour contrôler les périphériques /dev/sda,/dev/sdb,. . .
I Des block devices intermédiaires (empilables) :� Utilisent un ou plusieurs block devices� Les agrègent� Exportent un ou plusieurs block devices� Exemples :
F mdraid : RAID logicielF LVM : gestion de volumes logiques
Lucas Nussbaum Administration Système - 6 10 / 16
Pile stockage dans Linux
Applications (processes)
VFS
Request-baseddevice mapper targets
dm-multipath
Physical devices
HDD SSD DVDdrive
MicronPCIe card
LSIRAID
AdaptecRAID
QlogicHBA
EmulexHBA
malloc
BIOs (block I/Os)
sysfs(transport attributes) SCSI upper level drivers
/dev/sda
scsi-mq
.../dev/sd*
SCSI low level driversmegaraid_sas
aacraid
qla2xxx ...libata
ahci ata_piix ... lpfc
Transport classesscsi_transport_fc
scsi_transport_sas
scsi_transport_...
/dev/vd*
virtio_blk mtip32xx
/dev/rssd*
The Linux Storage Stack Diagramhttp://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
Created by Werner Fischer and Georg SchönbergerLicense: CC-BY-SA 3.0, see http://creativecommons.org/licenses/by-sa/3.0/
ext2 ext3
btrfs
ext4 xfs
ifs iso9660
...
NFS codaNetwork FS
gfs ocfs
smbfs ...
Pseudo FS Specialpurpose FSproc sysfs
futexfs
usbfs ...
tmpfs ramfs
devtmpfspipefs
network
nvmedevice
The Linux Storage Stack Diagramversion 4.0, 2015-06-01
outlines the Linux storage stack as of Kernel version 4.0
mmap(anonymous pages)
iscsi_tcp
network
/dev/rbd*
Block-based FS
read
(2)
wri
te(2
)
op
en(2
)
stat(
2)
chm
od
(2)
...
Pagecache
mdraid...
stackable
Devices on top of “normal”block devices drbd
(optional)
LVMBIOs (block I/Os)
BIOs BIOs
Block Layer
multi queue
blkmq
Softwarequeues
Hardwaredispatchqueues
...
...
hooked in device drivers(they hook in like stackeddevices do)
BIOs
Maps BIOs to requests
deadline
cfqnoop
I/O scheduler
Hardwaredispatchqueue
Requestbased drivers
BIObased drivers
Requestbased drivers
ceph
struct bio- sector on disk
- bio_vec cnt- bio_vec index- bio_vec list
- sector cnt
Fib
re C
hannel
over
Eth
ern
et
LIO
target_core_mod
tcm
_fc
Fire
Wir
e
ISC
SI
Direct I/O(O_DIRECT)
device mapper
network
iscs
i_ta
rget_
mod
sbp
_targ
et
target_core_file
target_core_iblock
target_core_pscsi
vfs_writev, vfs_readv, ...
dm-crypt dm-mirrordm-thindm-cache
tcm
_qla
2xxx
tcm
_usb
_gad
get
US
B
Fib
re C
hannel
tcm
_vh
ost
Vir
tual H
ost
/dev/nvme*n*
SCSI mid layer
virtio_pci
LSI 12GbsSAS HBA
mpt3sas
bcache
/dev/nullb*
vmw_pvscsi
/dev/skd*
skd
stecdevice
virtio_scsi
para-virtualizedSCSI
VMware'spara-virtualized
SCSI
target_core_user
unionfs FUSE
/dev/mmcblk*p*
dm-raid
/dev/sr* /dev/st*
pm8001
PMC-SierraHBA
SD-/MMC-Card
/dev/rsxx*
rsxx
IBM flashadapter
/dev/zram*
memory
null_blk
ufs
userspace
ecryptfs
Stackable FS
mobile deviceflash memory
nvme
overlayfs
userspace (e.g. sshfs)
mmcrbdzram
dm-delay
Lucas Nussbaum Administration Système - 6 11 / 16
Pile stockage dans Linux (simplifiée)
Modifié depuis https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
Lucas Nussbaum Administration Système - 6 12 / 16
RAID (Redundant Array of Independent Disks)I Agréger plusieurs disques dans un espace de stockage unique pour
augmenter la redondance et les performancesI Plusieurs types : RAID 0, RAID 1, RAID 5, RAID 6 (compromis différents)I Implémentations :
� RAID logiciel (driver mdraid, commande mdadm)F Utilise le CPU du serveur pour les calculs de paritéF Plus facile à administrer, à monitorer, etc.
� RAID matériel (dans le firmware de la carte RAID)F Performances généralement meilleures (inclut un cache)
I RAID 0 : volume agrégé par bandesI RAID 1 : disques en miroir
(Source des images : Wikipedia)
Lucas Nussbaum Administration Système - 6 13 / 16
RAID (Redundant Array of Independent Disks) (2)I RAID 5 : volume agrégé par bandes à parité répartie
; Survivre à la défaillance d’un disqueI RAID 6 : idem RAID 5, mais plusieurs disques de parité
; Survivre à la défaillance de plusieurs disques
Lucas Nussbaum Administration Système - 6 14 / 16
LVM (Logical Volume Manager)
I Gérer les partitions de manière beaucoup plus flexible� Notamment redimensionner à volonté
I On configure des VG (Volume Group) qui :� Rassemblent des PV (Physical Volumes) : disques ou partitions� Et les découpent en LV (Logical Volumes) : devices qui seront
utilisés pour créer des systèmes de fichiers, par exemple.
I Configuration la plus classique : un VG comprenant un seul PV (le disquedu serveur) et découpé en LV selon les besoins
Lucas Nussbaum Administration Système - 6 15 / 16
LVM (Logical Volume Manager) (2)
Lucas Nussbaum Administration Système - 6 16 / 16