Administration Système Stockage · Introduction Différents besoins : I Stocker le système...

16
Administration Système Stockage Lucas Nussbaum [email protected] Licence professionnelle ASRALL Administration de systèmes, réseaux et applications à base de logiciels libres Lucas Nussbaum Administration Système - 6 1 / 16

Transcript of Administration Système Stockage · Introduction Différents besoins : I Stocker le système...

Page 1: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 2: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 3: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 4: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 5: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

Dell R740XD2

Maximum 26 disques, 364 To

Lucas Nussbaum Administration Système - 6 5 / 16

Page 6: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 7: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 8: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 9: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 10: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 11: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 12: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 13: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 14: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 15: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

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

Page 16: Administration Système Stockage · Introduction Différents besoins : I Stocker le système Éventuellement, le système de machines virtuelles I Stocker les données métiers (des

LVM (Logical Volume Manager) (2)

Lucas Nussbaum Administration Système - 6 16 / 16