Commandes Linux pour gérer, partitionner, dépanner

  • par
Télécharger

Cliquez pour télécharger cet article et quatre autres articles essentiels sur Linux.

Combien faut-il connaître les disques pour réussir à gérer un système Linux ? Quelles commandes font quoi ? Comment prendre de bonnes décisions en matière de partitionnement ? Quels types d’outils de dépannage sont disponibles ? Quels types de problèmes pouvez-vous rencontrer ? Cet article couvre un grand nombre de territoires – de l’examen des bases d’un système de fichiers Linux à l’échantillonnage de certaines commandes très utiles.

Technologie des disques

Au début d’Unix et plus tard de Linux, les disques étaient physiquement grands, mais très petits en termes de capacité de stockage. Un disque de 300 mégaoctets au milieu des années 90 avait la taille d’une boîte à chaussures. Aujourd’hui, vous pouvez obtenir des disques de plusieurs téraoctets qui ont la taille d’une tranche de pain grillé.

Traditionnellement, les fichiers résidaient dans des systèmes de fichiers qui résidaient dans des partitions de disque qui étaient elles-mêmes simplement des tranches de disques. Cette organisation domine encore aujourd’hui, même si les serveurs des grands centres de données adoptent souvent une structure entièrement différente.

 /\ / \ / \ / file \ / \ /==========\ / \ / file system \ / \ /==================\ / disk partition \ /======================\ / disk \ /==========================\

Cette vision simpliste fonctionne encore pour de nombreux systèmes, mais de nos jours, il existe beaucoup de complexités qui rendent la gestion des disques plus difficile à certains égards et plus facile à d’autres. Un système de fichiers pourrait être virtuel – ne résidant plus sur un seul disque et plus complexe à gérer, mais beaucoup plus facile à redimensionner selon les besoins. En fait, le système tout entier pourrait être virtuel. Et ce que nous pourrions gérer comme s’il s’agissait d’un seul disque pourrait en fait être une partie d’une très grande matrice de disques.

Gestion des disques

Les administrateurs système doivent généralement faire face à de nombreux problèmes lorsqu’il s’agit de gérer les disques. Il s’agit notamment de :

  • Partitionner les disques
  • Créer des systèmes de fichiers
  • Monter des systèmes de fichiers
  • Partager des systèmes de fichiers
  • Surveiller l’espace libre au sein des systèmes de fichiers
  • Sauvegarder (et parfois restaurer) des systèmes de fichiers

Les raisons de partitionner un disque incluent :

  • Protection de certains systèmes de fichiers contre le manque d’espace (par ex.g., vous pourriez vouloir que la partition du système d’exploitation soit séparée des répertoires personnels ou des applications pour l’empêcher d’être affectée si les fichiers des utilisateurs commencent à prendre une quantité bien excessive d’espace disque)
  • améliorer les performances
  • allouer l’espace d’échange
  • faciliter la maintenance et les sauvegardes (par ex, vous pourriez être en mesure de démonter /apps s’il ne fait pas partie de / et vous pourriez vouloir sauvegarder /home plus fréquemment que /usr)
  • un fsck plus efficace (et ciblé)
  • maintenir (en particulier sur les systèmes de test) plusieurs systèmes d’exploitation
  • réserver suffisamment d’espace disque pour l’expansion du système de fichiers
  • partager certains systèmes de fichiers avec d’autres systèmes

Commandes de partitionnement

Pour la plupart des serveurs Linux, le partitionnement est effectué avant que les serveurs ne soient déployés. En revanche, il se peut que vous ajoutiez des disques à un moment ultérieur ou que vous reteniez une certaine quantité significative d’espace disque libre pour une utilisation future.

Pour apporter des modifications ou vérifier les partitions, entrez une commande telle que fdisk /dev/sda pour lancer fdisk de manière interactive, puis tapez m pour voir une liste des choses que vous pouvez faire avec la commande fdisk.

$ sudo fdisk /dev/sdaCommand (m for help): mCommand action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)

Comme vous pouvez le voir, la commande fdisk fournit de nombreuses fonctionnalités. Les partitions que vous avez configurées peuvent ressembler à cette configuration dans laquelle quatre partitions ont été configurées sur un seul disque – /dev/sda.

sda+------------+------------------------+--------------------+------+| / 40G | /home 80G | /apps 70G | swap |+------------+------------------------+--------------------+------+ sda1 sda2 sda3 sda4

Examen de l’espace disque et des partitions de disque

Il existe un certain nombre d’excellentes commandes pour examiner les partitions de disque. La commande df est l’une des commandes les plus utilisées pour rendre compte de l’utilisation de l’espace disque. Avec l’option -h, la commande df affiche les mesures dans le format le plus « convivial » et c’est, en fait, ce que le « h » est censé impliquer. Comme vous pouvez le voir dans l’exemple ci-dessous, les mesures sont affichées en kilo-octets, méga-octets ou giga-octets selon les tailles plutôt que d’utiliser toutes la même échelle.

$ df -hFilesystem Size Used Avail Use% Mounted onudev 969M 4.0K 969M 1% /devtmpfs 196M 1.1M 195M 1% /run/dev/sda1 37G 4.5G 31G 13% /none 4.0K 0 4.0K 0% /sys/fs/cgroupnone 5.0M 0 5.0M 0% /run/locknone 980M 152K 979M 1% /run/shmnone 100M 36K 100M 1% /run/user/dev/sda3 28G 44M 26G 1% /apps

La commande pydf (pensez à « python df » car il s’agit en réalité d’un script python) fournit également un affichage très utile de l’utilisation du disque montrant les points de montage et de mignonnes petites illustrations pour savoir à quel point chaque partition est pleine.

$ pydfFilesystem Size Used Avail Use% Mounted on/dev/sda1 37G 4534M 30G 12.1 //dev/sda3 27G 44M 26G 0.2 /apps

La commande parted affiche les informations sur les partitions dans un format différent:

$ sudo parted -lModel: ATA WDC WD800AAJS-60 (scsi)Disk /dev/sda: 80.0GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system Flags 1 1049kB 40.0GB 40.0GB primary ext4 boot 2 40.0GB 50.0GB 10.0GB primary linux-swap(v1) 3 50.0GB 80.0GB 30.0GB primary ext4

La commande lsblk (list block devices) illustre graphiquement la relation entre les disques et leurs partitions et fournit également les numéros de périphériques majeurs et mineurs et les points de montage.

$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 74.5G 0 disk├─sda1 8:1 0 37.3G 0 part /├─sda2 8:2 0 9.3G 0 part └─sda3 8:3 0 28G 0 part /apps

La commande fdisk rapporte plus de détails sur les partitions des disques et utilise des numéros très différents. Vous pouvez également utiliser fdisk pour créer ou supprimer des partitions, répertorier l’espace non partitionné, modifier un type de partition ou vérifier la table de partition.

$ sudo fdisk -lDisk /dev/sda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000f114b Device Boot Start End Blocks Id System/dev/sda1 * 2048 78125055 39061504 83 Linux/dev/sda2 78125056 97656831 9765888 82 Linux swap / Solaris/dev/sda3 97656832 156301311 29322240 83 Linux

La commande sfdisk est similaire à fdisk, mais facilite certaines activités de manipulation des partitions.

$ sudo sfdisk -l -uMDisk /dev/sda: 9729 cylinders, 255 heads, 63 sectors/trackUnits = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End MiB #blocks Id System/dev/sda1 * 1 38146 38146 39061504 83 Linux/dev/sda2 38147 47683 9537 9765888 82 Linux swap / Solaris/dev/sda3 47684 76318 28635 29322240 83 Linux/dev/sda4 0 - 0 0 0 Empty

NOTE : Un mebibyte (MiB) = 220 octets ou 1 048 576 octets.

La commande cfdisk peut également être utilisée pour afficher ou manipuler les partitions de disque.

$ sudo cfdisk cfdisk (util-linux 2.20.1) Disk Drive: /dev/sda Size: 80026361856 bytes, 80.0 GB Heads: 255 Sectors per Track: 63 Cylinders: 9729 Name Flags Part Type FS Type Size (MB) -------------------------------------------------------------------------- Pri/Log Free Space 1.05* sda1 Boot Primary ext4 39998.99* sda2 Primary swap 10000.27* sda3 Primary ext4 30025.98* Pri/Log Free Space 0.10* Create new partition from free space

Surveiller les performances des disques

La commande iostat peut afficher des statistiques qui illustrent les performances des disques, notamment leur degré d’utilisation. Elle affiche également des mesures importantes qui montrent à quel point le processeur est occupé et combien de ses ressources sont utilisées pour des types de travaux. Le système décrit ci-dessous est inactif plus de 95% du temps. Plus important encore pour notre intérêt pour les disques, le %iowait (CPU en attente d’IO sur le disque) est très bas. Cela ne serait pas vrai si le disque était inhabituellement occupé et si les E/S du disque constituaient un goulot d’étranglement.

$ iostat -x 60Linux 3.13.0-129-generic (stinkbug) 08/31/2017 _x86_64_ (2 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 0.93 1.15 0.35 1.86 0.00 95.73Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %utilsda 8.37 3.26 13.41 2.79 341.14 191.82 65.79 0.61 37.60 30.40 72.14 2.52 4.08

L’une des commandes les plus informatives pour examiner la santé des disques est probablement smartctl (qui fait partie de smartmontools). Bien que la commande génère beaucoup de sorties, elle fournit des mesures précieuses qui pourraient vous aider à localiser les problèmes de disque, en particulier une fois que vous vous êtes habitué à travailler avec ses nombreuses sorties.

$ sudo smartctl -a /dev/sda1smartctl 6.2 2013-07-26 r3841 (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF INFORMATION SECTION ===Model Family: Western Digital Caviar Blue Serial ATADevice Model: WDC WD800AAJS-60M0A0Serial Number: WD-WMAV37134378LU WWN Device Id: 5 0014ee 0015c85efFirmware Version: 02.03E02User Capacity: 80,026,361,856 bytes Sector Size: 512 bytes logical/physicalDevice is: In smartctl database ATA Version is: ATA8-ACS (minor revision not indicated)SATA Version is: SATA 2.5, 3.0 Gb/sLocal Time is: Thu Aug 31 15:30:19 2017 EDTSMART support is: Available - device has SMART capability.SMART support is: Enabled=== START OF READ SMART DATA SECTION ===SMART overall-health self-assessment test result: PASSEDGeneral SMART Values:Offline data collection status: (0x82) Offline data collection activity was completed without error. Auto Offline Data Collection: Enabled.Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run.Total time to complete Offlinedata collection: ( 2700) seconds.Offline data collectioncapabilities: (0x5b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. No Conveyance Self-test supported. Selective Self-test supported.SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer.Error logging capability: (0x01) Error logging supported. General Purpose Logging supported.Short self-test routinerecommended polling time: ( 2) minutes.Extended self-test routinerecommended polling time: ( 36) minutes.SCT capabilities: (0x303f) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported.SMART Attributes Data Structure revision number: 16Vendor Specific SMART Attributes with Thresholds:ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 143 140 021 Pre-fail Always - 3841 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 178 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002f 100 253 051 Pre-fail Always - 0 9 Power_On_Hours 0x0032 058 058 000 Old_age Always - 31203 10 Spin_Retry_Count 0x0033 100 100 051 Pre-fail Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 175184 End-to-End_Error 0x0033 100 100 097 Pre-fail Always - 0187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0188 Command_Timeout 0x0032 100 100 000 Old_age Always - 0190 Airflow_Temperature_Cel 0x0022 066 062 040 Old_age Always - 34192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 103193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 178196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0SMART Error Log Version: 1No Errors LoggedSMART Self-test log structure revision number 1Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error# 1 Short offline Completed without error 00% 30349 -# 2 Extended offline Aborted by host 80% 0 -SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testingSelective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk.If Selective self-test is pending on power-up, resume after 0 minute delay.

Il existe de nombreuses autres commandes pour examiner les disques et les systèmes de fichiers. Celles décrites ici sont parmi les plus utiles et les plus informatives. Les utiliser périodiquement présente des avantages, car le moyen le plus simple de repérer les problèmes est de s’habituer à la sortie de commandes telles que celles-ci au point de repérer facilement le type de différences qui pourraient indiquer des problèmes.

Les commandes de ce type peuvent être utilisées par les utilisateurs.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *