Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
16 mai 2017

htmlpdflatexmanmd




ganesha-nfsd

ganesha-nfsd

Service nfs en userspace

-L ‹logfile› Fichier de log du service (défaut: SYSLOG)
-N ‹dbg_level› Niveau de verbosité. Défaut: NIV_EVENT
-f ‹config_file› Fichier de configuration. Défaut: /etc/ganesha/ganesha.conf
-p ‹pid_file› Fichier pid. Défaut: /var/run/ganesha.pid
-F Ne lance pas en tâche de fond
-R Gère RPCSEC_GSS
-T Dump la configuration par défaut sur stdout
‹epock› Change ServerBootTime pour ServerEpoch

Signaux

SIGUSR1 Active/désactive le vidage forcé du cache de contenu de fichier
^
16 mai 2017

htmlpdflatexmanmd




ganesha.conf

ganesha.conf

Fichier de configuration pour nfs-ganesha

NFS_CORE_PARAM

NFS_Port Port utilisé par le protocole NFS. défaut: 2049
MNT_Port Port utilisé par le protocole MNT. Défaut: 0
NLM_Port Port utilisé par le protocole NLM. Défaut: 0
Bind_addr Adresse d'écoute. Défaut: 0.0.0.0
NFS_Program Numéro RPC pour NFS. Défaut: 100003
MNT_Program Numéro RPC pour MNT. Défaut: 100005
NLM_Program Numéro RPC pour NLM. Défaut: 100021
Nb_Worker Nombre de threads. Défaut: 256
Drop_IO_ERrors (NFS3), indique de supprimer au lieu de répondre aux requêtes contenant des erreurs E/S.
Drop_Inval_Errors (NFS3)indique de supprimer au lieu de répondre aux requêtes contenant des erreurs d'arguments
Drop_Delay_Errors [NFS3) indique de supprimer au lieu de répondre aux requêtes contenant des erreurs de délai
Dispatch_Max_Reqs Nombre total de requêtes à autoriser dans le dispatcher simultannément. Défaut: 5000
Dispatch_Max_Reqs_Xprt Nombre de requêtes à autoriser dans le dispatcher depuis un transport spécifique. Défaut: 512
Plugins_Dir Chemin contenant les modules. Défaut: /usr/lib64/ganesha
Enable_Fast_Stats Indique si fast stats est utilisé
Short_File_Handle (NFS3) Utilise le file handle NFS cours, pour les clients VMware.
Manage_Gids_Expiration Délai de conservation des informations obtenue par getgroups quand Manage_Gids = TRUE est utilisé dans une entrée d'export
heartbeat_freq Frequnce de heartbeat dbus, en ms. Défaut: 1000
Enable_NLM Active le supporte du protocole NLM;
Decoder_Fridge_Expiration_Dela Délai d'attente en secondes, des threads decodeur non-utilisés avant de quitter. Défaut: 600
Decoder_Fridge_Block_Timeout Délait d'attente en secondes, du decodeur fridge pour accèpter une tâche avant de quitter. Défaut: 600
Blocked_Lock_Poller_Interval Interval d'interrogation pour le thread d'interrogation de lock bloqué. Défaut: 10
NFS_Protocols Liste de versions de protocoles autorisés. Défaut: 3,4
NSM_Use_Caller_Name Utilise le nom fournis au lieu de d'adresse IP dans NSM.
Clustered Indique si ganesha fait partie d'un cluster de serveurs Ganesha.
fsid_device Utilisation de périphérique majeur/mineur pour fsid
mount_path_pseudo Utilise Pseudo (true) ou Path (false) pour les montages NFS3 et 9P
DRC_Disabled Désactive DRC
TCP_Npart Nombre de partitions dans l'arborescence pour TCP DRS. Défaut: 1
DRC_TCP_Size Nombre maximum de requête dans un DRC de transport. Défaut: 1024
DRC_TCP_Cachesz Nombne d'entrée dans le cache frontend vers un cache de requête TCP Dupliqué. Défaut: 127
DRC_TCP_Hiwat watermark haut pour le DRC d'une connexion TCP pour commencer à retirer les entrées si possible
DRC_TCP_Recycle_Npart Nombre de partitions dans l'arborescence qui maintient les DRC par connexion peut qu'ils puissent être utilisés à la reconnexion
DRC_TCP_Recycle_Expire_S Délai en secondes d'attente avant de libérer le DRC d'un client déconnecté. Défaut: 600
DRC_TCP_Checksum Utilise un checksum pour matcher les requêtes et le XID.
DRC_UDP_Npart Nombre de partitions dans l'arborescence DRC UDP
DRC_UDP_Size Nombre maximum de requêtes dans le DRC UDP
DRC_UDP_Cachesz Nombre d'entrées dans le cache frontend pour le cache de requêtes UDP dupliquées
DRC_UDP_Hiwat Watermark haut pour DRC UDP auquel commencer à retirer les entrées si possible
DRC_UDP_Checksum Utilise un checksum pour matcher les requêtes et le XID
RPC_Debug_Flags Flags de débug pour TIRPC
RPC_Max_Connections Nombre max de connexions pour TIRPC. Défaut: 1024
RPC_Idle_Timeout_S Délai idle en secondes Défaut: 300
MaxRPCSendBufferSize Taille du tampon d'envoie RPC. Défaut: 1048576
MaxRPCRecvBufferSize Taille du tampon de réception RPC. Défaut: 1048576
RPC_Ioq_ThrdMax Threads io simultanné max
RPC_GSS_Npart Partitions dans la table de cache ctx GSS
RPC_GSS_Max_Ctx Contextes GSS max dans le cache. Défaut: 16384.
RPC_GSS_Max_Gc Entrées max pour expiration en une vérification idle
Enable_TCP_keepalive Spécifie si les sockets TCP utilisent SO_KEEPALIVE
TCP_KEEPCNT Nombre max de sondes TCP avant de détruire la connexion. Défaut: 0 (utilise le défaut système)
TCP_KEEPIDLE Temps idle avant que TCP ne commence à envoyer des sondes keepalive. Défaut: 0 (utiliser de défaut système)
TCP_KEEPINTVL Temps entre que chaque sonde keepalive. Défaut: 0 (utiliser de défaut système)

NFS_IP_NAME

Index_Size 1-51 Configuration pour la table de hash pour les mappages NFS name/IP map. Défaut: 17
Expiration_Time Délai d'expiration pour les mappages ip-name. Défaut: 3600

NFS_KRB5

PrincipalName principale pour le service. Défaut: nfs
KeytabPath Emplacement du fichier keytab
CCacheDir Emplacement du cache d'accréditifs. Défaut: /var/run/ganesha
Active_krb5 Indique si kerberos5 est activé

NFSv4

Graceless Désactive la période de grâce NFS4
Lease_Lifetime Durée de vie des bails NFS4
Grace_Period Période de grâce NFS
DomainName Domaine à utiliser si nfsidmap n'est pas utilisé
IdmapConf Chemin du fichier de configuration idmapd.conf
UseGetpwnam Utilise PAM au lieu de nfsidmap
Allow_Numeric_Owners Autorise les ID numériques dans les identifiants de propriétaire et groupe NFS4
Only_Numeric_Owners N'autorise que les ID numérique dans les identifiants de propriétaire et groupe NFS4
Delegations Autorise les délégations
Deleg_Recall_Retry_Delay Délai après lequel le serveur retente un recall en cas d'erreurs
pnfs_mds Indique si c'est un serveur pNFS MDS
pnfs_ds Indique si c'est un serveur pNFS DS

EXPORT_DEFAULTS

Access_Type RW, RO, MDONLY, MDONLY_RO, NONE.
Protocols Liste de protocoles permis: 3, 4, v3, v4, NFS3, NFS4
Transports Liste de protocoles de transport permis: UDP, TCP et RDMA
Squash Type de squashing: No_Root_Squash, NoIdSquash, None désactive le squashing, Root, Root_Squash, RootSquansh squash root, All, All_Squash, AllSquash squash tous les users
Anonymous_Uid uid utilisé pour les utilisateurs squashés.
Anonymous_Gid gid utilisé pour les groupes squashés.
SecType Liste de types de sécurité RPC autorisés: none, krb5, krb5i, krb5p
PrivilegedPort à true, les connexions client doivent venir d'un port ‹ 1024.
Manage_Gids À true, la liste de groupes alternatifs dans les accréditifs AUTH_SYS sont remplacés par une recherche serveur. Celà permet de bypasser la limite des 16 groupes de AUTH_SYS
Delegations Types de délégations qui peuvent être donnés (None, Read, Write, ReadWrite, R, W, et RW)
Attr_Expiration_Time Défaut: 60
NFS_Commit Défaut: false

EXPORT

Export_id Identifiant pour l'export. Doit être unique entre 0 et 65535. à 0, Pseudo doit être '/'
Path Répertoire à exporter. Ne Doit pas être unique si Pseudo et/ou Tag sont spécifiés
Pseudo Spécifie la position dans le Pseudo système de fichier que cet export occupe. Doit être unique. peut être spécifié plusieurs fois
Tag Permet un accès alternatif pour les montages NFSv3
MaxRead Taille le lecture maximum dans cet export. Défaut: 4194304
MaxWrite Taille d'écriture maximum dans cet export. Défaut: 4194304
PrefRead Taille de lecture préférée dans cet export. Défaut: 4194304
PrefWrite Talle d'écriture préférée dans cet export. Défaut: 4194304
PrefReaddir Taille readdir préféré dans cet export. Défaut: 16384. Ces 5 options on la même plage de valeurs de 512 à 9Mio
MaxOffsetWrite Offset de fichier maximum qui peut être écrit. Défaut: 18446744073709551615
MaxOffsetRead Offset de fichier maximum que peut être lu. Défaut: 18446744073709551615

EXPORT-CLIENT

        Clients Liste les entrées des clients. Peut être @netgroup, x.x.x.x/y, hostname, IPv4|IPv6. l'utilisation de '?' ou '*' est permise
        ‹export_perms› Toutes les permissions d'export dans le section EXPORT_DEFAULTS sont permise

EXPORT-FSAL

        Name Nom du FSAL
        ‹options› Les options dépendent du FSAL.

EXPORT-FSAL-PNFS

                Stripe_Unit Défaut: 8192
                pnfs_enabled Active pnfs. Défaut: false

EXPORT-FSAL-FSAL

                Décris les paramètres FSAL stackés

LOG

Default_log_level NULL|FATAL|MAJ|CRIT|WARN|EVENT|INFO|DEBUG|MID_DEBUG|M_DBG|FULL_DEBUG|F_DBG Niveau de logs par défaut
COMPONENTS Chaque entrée est sous la forme COMPONENT = LEVEL. Les composants sont:

LOG-COMPONENTS

        ALL
        LOG
        LOG_EMERG
        MEMLEAKS, LEAKS
        FSAL
        NFSPROTO, NFS3
        NFS_V4, NFS4
        EXPORT
        FILEHANDLE, FH
        DISPATCH, DISP
        CACHE_INODE, INODE
        CACHE_INODE_LRU, INODE_LRU
        HASHTABLE, HT
        HASHTABLE_CACHE, HT_CACHE
        DUPREQ
        INIT, NFS_STARTUP
        MAIN
        IDMAPPER
        NFS_READDIR
        NFS_V4_LOCK, NFS4_LOCK
        CONFIG
        CLIENTID
        SESSIONS
        PNFS
        RW_LOCK
        NLM
        RPC
        NFS_CB
        THREAD
        NFS_V4_ACL, NFS4_ACL
        STATE
        9P
        9P_DISPATCH, 9P_DISP
        FSAL_UP
        DBUS
        NFS_MSK

LOG-FACILITY

        name file|syslog Nom du nouveau logger
        destination stdout|stderr|syslog/‹file-path› Emplacement du fichier de log
        max_level NULL|FATAL|MAJ|CRIT|WARN|EVENT|INFO|DEBUG|MID_DEBUG|M_DBG|FULL_DEBUG|F_DBG Niveau de log maximum que ce logger gère. défaut: FULL_DEBUG
        headers none|component|all Niveau de détail pour la partie en-tête du message
        enable idle|active|default Active le logger

LOG-FORMAT

        date_format ganesha|true|local|8601|ISO-8601|ISO 8601|ISO|syslog|syslog_usec|false|none|user_defined Défaut: ganesha
        time_format ganesha|true|local|8601|ISO-8601|ISO 8601|ISO|syslog|syslog_usec|false|none|user_defined Défaut: ganesha
        user_date_format Spécifie le format pour date_format user_defined
        user_time_format Spécifie le format pour time_format user_defined
        EPOCH true|false Les dates sont basé sur l'epoch
        CLIENTIP true|false Inclus l'IP du client dans les logs
        HOSTNAME true|false Inclus les noms d'hôte dans les logs
        PROGNAME true|false Inclus le nom du programme dans les logs
        PID true|false Inclus de pid dans les logs
        THREAD_NAME true|false Inclus le nom du thread dans les logs
        FILE_NAME true|false Inclus le nom du fichier dans les logs
        LINE_NUM true|false Inclus de numéro de ligne dans les logs
        FUNCTION_NAME true|false Inclus le nom de la fonction dans les logs
        COMPONENT true|false Inclus le composant dans les logs
        LEVEL true|false Inclus le niveau de log

CACHEINODE

NParts Nombre de partitions dans l'arborescence Cache_Inode. Défaut: 7
Cache_Size Taille de table de hashage par partition
Use_Getattr_Directory_Invalidation Utilise getattr pour l'invalidation de répertoire
Dir_Max_Deleted Taille max du cache par répertoire des entrées supprimées. Défaut: 65536
Dir_Max Taille max du cache dirent par répertoire. Défaut: 65536
Dir_Chunk Taille des chunks du cache dirent par répertoire. 0 = le chunking n'est pas autorisé. Défaut: 128
Entries_HWMark watermark haut pour les entrées du cache. Défaut: 100000
LRU_Run_Interval Interval de base en secondes entre les lancerment du thread cleaner LRU. Défaut: 90
Cache_FDs spécifie si le cache des fichiers ouvert est autorisé
FD_Limit_Percent % du maximum imposé par le système de descripteurs de fichier au delà duquel ganesha refuse les requêtes
FD_HWMark_Percent % du maximum imposé par le système de descripteurs de fichier au delà duquel ganesha fera plus d'effort de récupération.
FD_LWMark_Percent % du maximum imposé par le système de descripteurs de fichier en-dessous duquel ganesha ne récupère pas de descripteur de fichiers..
Reaper_Work Quantité de travail à faire à chaque passe dans des conditions normales
Biggest_Window La fenêtre la plus large en % de la limite imposée par le système sur les FD, du travail qui est fait en extrême.
Required_Progress % de progression au-delà du watermark haut requis dans une passe via le thread en extrême.
Futility_Count Nombre d'erreurs pour approcher le watermark haut avant de désactiver le cache.
Retry_Readdir Comportement quand readdir échoue. true, demande au client de retenter ultérieurement.

9P

_9P_TCP_Port
_9P_RDMA_Port
_9P_TCP_Msize
_9P_RDMA_Msize
_9P_RDMA_Backlog
_9P_RDMA_Inpool_size
_9P_RDMA_Outpool_Size

CEPH

Ceph_Conf
umask
xattr_access_rights

GPFS

link_support
symlink_support
cansettime
umask
auth_xdev_export
xattr_access_rights
Delegations
pnfs_file
fsal_trace
fsal_grace

MEM

Inode_Size
Up_Test_Interval

RGW

Ceph_Conf
name
cluster
init_args

VFS

link_support
symlink_support
cansettime
maxread
maxwrite
umask
auth_xdev_export
xattr_access_rights

XFS

link_support
symlink_support
cansettime
maxread
maxwrite
umask
auth_xdev_export
xattr_access_rights

ZFS

link_support
symlink_support
cansettime
maxread
maxwrite
umask
auth_xdev_export
xattr_access_rights

PROXY

link_support
symlink_support
cansettime
MAX_READ_WRITE_SIZE
FSAL_MAXIOSIZE
SEND_RECV_HEADER_SPACE
maxread
maxwrite
umask
auth_xdev_export
xattr_access_rights

PROXY-Remote_Server

        Retry_SleepTime
        Srv_Addr
        NFS_Service
        NFS_SendSize
        NFS_RecvSize
        MAX_READ_WRITE_SIZE
        SEND_RECV_HEADER_SPACE
        FSAL_MAXIOSIZE
        NFS_SendSize
        NFS_RecvSize
        NFS_Port
        Use_Privileged_Client_Port
        RPC_Client_Timeout
        Remote_PrincipalName
        KeytabPath
        Credential_LifeTime
        Sec_Type
        Active_krb5
        Enable_Handle_Mapping
        HandleMap_DB_Dir
        HandleMap_Tmp_Dir
        HandleMap_DB_Count
        HandleMap_HashTable_Size

GLUSTER

pnfs_mds true|false
pnfs_ds true|false
^
14 décembre 2016

htmlpdflatexmanmd




udisksctl

udisksctl

Outil de contrôle udisks

   udisksctl est un programme utilisé pour interragir avec udisksd

Commandes

status Affiche des information sur les disques et périphériques blocks
info Affiche des information détaillées
mount Monte un périphérique dans /media
unmount Démonte un périphérique
unlock Débloque un périphérique chiffré. La passphrase sera demandé et le périphérique déchiffré est affiché sur stdout
lock Bloque un périphérique
loop-setup Définis un périphérique loop
loop-delete Supprime un périphérique loop
power-off Arrange le disque pour être supprimé proprement
smart-simulate Définis les données SMART depuis libatasmart donné par le fichier spécifié. Utilisé à des fins de debuggage
monitor Monitore les évènements du service
dump Affiche l'état courant du service

Options communes

--no-user-interaction Ne demande pas d'interaction utilisateur.
^
14 décembre 2016

htmlpdflatexmanmd




umount.udisks2

umount.udisks2

Démonter les systèmes de fichier qui ont été montés par udisks

   umount.udisks2 est un helper pour le programme umount. Son but est de nettoyer automatiquement les répertoires créés au moment du montage du système de fichier. Il ne devrait pas être appelé directement.

^
14 décembre 2016

htmlpdflatexmanmd




udiskd

udiskd

Service système udisks

   Le programme udisksd fournis le nom org.freedesktop.UDisks2 dans D-Bus. Les utilisateurs ou administrateurs ne devraient jamais le démarrer vu qu'il est démarré automatiquement par dbus-daemon ou systemd.

OPTIONS

--replace Remplace un service existant
--no-debug N'affiche pas les messages de debug sur stdout/stderr
--no-sigint Ne gère pas SIGINT pour les extinctions contrôlées
^
14 décembre 2016

htmlpdflatexmanmd




udisks

udisks

Gestionnaire de disque

   udisks fournis les interfaces pour énumérer et effectuer des opérations sur les périphériques disques. Toute application (incluant celles privilégiées) peuvent accéder à udisksd via org.freedesktop.UDisks2 dans le D-Bus. De plus, libudisks2 est également fournis. Cette librairie peut être utilisée depuis C/C++ et tout langage haut niveau avec le support de GObjectIntrospection(2).

Contrôle d'accès

   Par défaut, les utilisateurs loggés dans une session active sont autorisés à effectuer des opérations dans les périphériques attachés à leur session. Le contrôle d'accès est basé sur polkit. Noter que l'option x-udisks-auth peut être utilisée dans /etc/fstab et /etc/crypttab pour spécifier quelles autorisations sont requises pour le montage.

Configuration de pilote

   Au démarrage et quand un disque est connecté, udisksd applique la configuration dans /etc/udisks2/IDENTIFIER.conf où IDENTIFIER est la valeur de Drive:Id du périphérique. Si le fichier change sur disque son nouveau contenu sera également appliqué au lecteur. Généralement, les utilisateurs ou administrateurs n'ont jamais besoin d'éditer les fichiers de configuration vu qu'ils sont gérés graphiquement.

Groupe ATA

   Le groupe ATA sert pour les paramètres qui s'appliquent aux disques utilisant le jeu de commande ATA. Les clés suivantes sont supportées:

StandbyTimeout Le timeout de standby. 0 pour le désactiver. entre 1 et 240 spécifie un multiple de 5 secondes. Entre 241 et 251 spécifie de 1 à 11 unités de 30 minutes. 252 signifie un timeout de 21minutes. 253 définis un timeout définis par le vendeur entre 8 et 12 heures, et 254 est réservé. 255 = 21 minutes et 15 secondes.
APMLevel Niveau le gestion de puissant avancée. Une valeur faible signifie un gestion aggréssive, et une valeur élevée offre de meilleurs performances. de 1 à 127 (Autorise le spin-down), 128 à 254 (n'autorise pas le spin-down). Le meilleur niveau de gestion de puissance est obtenue avec 1 et les meilleurs performances E/S avec 254. 255 désactive APM.
AAMLevel Niveau de gestion acoustique automatique. Les disques les plus modernes ont la capacité de réduire la vitesse du mouvement de la tête pour réduire le bruit. Les valeurs vont de 0 à 254. 128 est le plus silencieux et 254 le plus fort. La plupart des disques on 3 options off (0), quiet (128) et fast (254).
WriteCacheEnabled (Bool) spécifie si le cache d'écriture est activé.
ReadLookaheadEnabled (bool) Spécifie si la pré-lecture est activée.

Information de périphérique

   udisks s'appuis sur les versions récentes de udev et du kernel. Les propriétés influençable dans udev incluent:

UDISKS_SYSTEM Définis, remplace la propriété HintSystem
UDISKS_IGNORE Définis, remplace la propriété HintIgnore
UDISKS_AUTO Définis, remplace la propriété HintAuto
UDISKS_CAN_POWER_OFF Définis, remplace la propriété CanPowerOff
UDISKS_NAME Nom à utiliser pour le périphérique en le présentant à une interface utilisateur. Correspond à la propriété HintName
UDISKS_ICON_NAME Icône à utiliser pour le périphérique en le présentant à une interface utilisateur.
UDISKS_SYMBOLIC_ICON_NAME L'icône à utiliser pour le périphérique en le présentant à une interface utilisateur en utilisant un icône symbolique
UDISKS_FILESYSTEM_SHARED à 1, le système de fichier dans le périphérique sera monté dans un répertoire partagé (ex: /media/VolumeName) au lieu d'un répertoire privé (ex: /run/media/$USER/VolumeName) quand la méthode Filesystem.Mount() est utilisée.
ID_SEAT Le siège physique où le périphérique est attaché. Si non définis, seat0 est supposé.
^
08 décembre 2016

htmlpdflatexmanmd




nfsdcltrack

nfsdcltrack

Programme de suivi d'appel client NFS

   nfsdcltrack est un programme côté serveur, qui suit les appels clients. Quand une partition réseau est combinée avec un reboot serveur, il y a des conditions qui peuvent permettre au serveur d'autoriser des réclamations de lock quand d'autres clients ont des conflits de lock (rfc3530 et rfc5661). Pour empêcher ces problèmes, le serveur doit garder une trace des informations client. nfsdcltrack fournis cette fonctionnalité

OPTIONS

-d, --debug Active le debug
-F, --foreground Ne lance pas en tâche de fond
-s storagedir, --storagedir=storagedir Répertoire où les informations de stockage stable devraient être conservés. Défaut: /var/lib/nfs/nfsdcltrack

Commandes

init Initialise la base
create Créé un nouvel enregistrement client ou met à jours l'horodatage d'un client existant. Nécessite un nfs_client_id4 en argument, en hexa
remove Supprime un enregistrement client de la base. Nécessite un nfs_client_id4 en argument, en hexa
check Vérifie si un nfs_client_id4 est autorisé à réclamer. Nécessite un nfs_client_id4 en argument, en hexa
check gracedone
Supprime tout enregistrement client non-réclamé de la base. Nécessite un délai de boot epoch en argument.

Configuration externe

Le répertoire pour les informations de stockage stable peut être définis via le fichier /etc/nfs.conf en définissant la valeur storagedir dans la section nfsdcltrack:
[nfsdcltrack]
storagedir = /shared/nfs/nfsdcltrack
^
08 décembre 2016

htmlpdflatexmanmd




targets.conf

targets.conf

Configuration pour tgt-admin

include Permet d'inclure d'autres configurations
default-driver Pilote par défaut. Défaut: iscsi
iSNSServerIP 192.168.111.222 ip du serveur iSNS
iSNSServerPort 3205 Port du serveur iSNS
iSNSAccessControl On Active le contrôle d'accès iSNS
iSNS On ACtive le support de iSNS
ignore-errors Continue même si tgtadm quitte avec un code non-zéro
‹target qn.2008-09.com.example:server.target1› Définir un target

        backing-store|direct-store /dev/LVM/somedevice Spécifie le périphérique. Chaque ligne backing|direct-store déclare un LUN, dans l'ordre. Direct-store lis les paramètres du disque avec la commande sg_inq. Dans le cas de mix, les backing-store sont traitées avant les direct-store.
        initiator-address 192.168.100.1 Autorise les connections depuis l'ip spécifiée. Peut être spécifié plusieurs fois, uniquement global et non par LUN
        write-cache on|off Active le cache d'écriture
        incominguser someuser secretpass12 Définis un user/password
        outgoinguser userA secretpassA Définis un utilisateur sortant
        controller_tid 10 tid du contrôleur
        vendor_id MyCompany Inc. Spécifie un vendeur
        product_id Spécifie un produit
        product_rev Spécifie une révision produit
        MaxRecvDataSegmentLength 8192
        MaxXmitDataSegmentLength 8192
        HeaderDigest None
        DataDigest None
        InitialR2T Yes
        MaxOutstandingR2T 1
        ImmediateData Yes
        FirstBurstLength 65536
        MaxBurstLength 262144
        DataPDUInOrder Yes
        DataSequenceInOrder Yes
        ErrorRecoveryLevel 0
        IFMarker No
        OFMarker No
        DefaultTime2Wait 2
        DefaultTime2Retain 20
        OFMarkInt Reject
        IFMarkInt Reject
        MaxConnections 1 Paramètres supplémentaires, définis au niveau global et non par LUN
        ‹direct-store|backing-store /dev/sda› Permet de spécifier les paramètres par LUN

                vendor_id,product_id,product_rev Spécifie les informations du vendeur
                lun 1 Spécifie l'id pour le lun
                device-type cd Spécifie le type de périphérique
                write-cache on Active le cache d'écriture
                mode_page 8:0:18:0x10:0:0xff....
                bs-type aio type de backing-store (rdwr, aio, etc). Défaut: rdwr
                params element_type=4,start_address=500,quantity=3,media_home=/root/tapes
                params element_type=4,address=500,tid=1,lun=1 Paramètres supplémentaires pour le LUN
                scsi_id
                scsi_sn multipath-10
                sense_format
                removable
                online
                readonly
                path
                allow-in-user yes

        ‹/direct-store|backing-store›

‹/target›

^
08 décembre 2016

htmlpdflatexmanmd




tgt-admin

tgt-admin

Outil de configuration de target SCSI

OPTIONS

-e, --execute Lit /etc/tgt/targets.conf et exécute les commandes tgtadm. Si le target existe déjà, ne le traite pas.
-d, --delete ‹value› Supprime les targets séléctionnés ou tous les targets. Le target n'est enlevé qui si aucun initiator n'est connecté
--offline Définis les targets spécifiés à l'état offline
--ready Définis les targets spécifiés à l'état ready
--update ‹value› Met à jours tous les targets ou les targets spécifiés. Uniquement si aucun initiateur n'est connecté
-s, --show Afficher tous les targets
-C, --control-port ‹NNNN› Spécifie le port de contrôle de l'instance tgtd à utiliser
--ignore-errors Continue même si tgtadm quitte avec un code non-zéro
-f, --force Force certaines opérations même si le target est utilisé
--dump Dump la configuration tgtd courante (n'inclus pas les paramètres détaillés)
-v, --verbose Mode verbeux (affiche le commandes tgtadm utilisées)

Fichiers

/etc/tgt/targets.conf Fichier de configuration de tgt-admin
^
08 décembre 2016

htmlpdflatexmanmd




tgt-setup-lun

tgt-setup-lun

script helper qui créé un target, ajoute un périphérique au target, et définis les initiators qui peuvent s'y connecter

Créer un target qui utilise /dev/sdb1 et autorise les connexions depuis 192.168.10.81
tgt-setup-lun -d /dev/sdb1 -n my_target 192.168.10.81
Créer un target qui utiliser /dev/sdb1 et autorise les connexions depuis 192.168.10.81 et 192.168.10.82
tgt-setup-lun -d /dev/sdb1 -n my_target 192.168.10.81 192.168.10.82

^
08 décembre 2016

htmlpdflatexmanmd




tgtadm

tgtadm

Utilitaire d'administration de target SCSI

OPTIONS

-C, --control-port ‹port› Port de connexion à tgtd
-v, --blocksize ‹size› Spécifie la taille de block sur laquelle opérer
-Y, --device-type ‹type› En créant un LUN, spécifie le type de périphérique à créer. Défaut: disk

        disk Émule un périphérique disque
        tape Émule un lecteur cassette
        ssc alias de tape
        changer Émule un périphérique changeur
        pt type passthrough pour exporter un périphérique /dev/sg

-E, --bstype ‹type› En créant un LUN, spécifie le type de stockage à utiliser:

        rdwr Utiliser l'E/S normal.
        aio Mode E/S asynchrone
        rbd Utilise un périphérique block RADOS Ceph
        sg type spécial pour les périphériques passthrough
        ssc Type spécial pour l'émulation tape

--lld ‹driver› --op new --mode target --tid ‹id› --targetname ‹name› ajoute un nouveau target
--lld ‹driver› --op delete --mode target --tid ‹id› Supprime le target ‹id›.
--lld ‹driver› --op delete --force --mode target --tid ‹id› Force la suppression du target ‹id›
--lld ‹driver› --op show --mode target Affiche toutes les target
--lld ‹driver› --op show --mode target --tid ‹id› Affiche les paramètres du target ‹id›
--lld ‹driver› --op new --mode logicalunit --tid ‹id› --lun ‹lun› --backing-store ‹path› --bsopts=‹backing store options› Ajoute un lun au target ‹id›. ‹path› doit être des périphériques block ou des fichiers ou une image RBD. lun0 est réservé par un périphérique spécial automatiquement créé
--lld ‹driver› --op delete --mode logicalunit --tid ‹id› --lun ‹lun› Supprime le LUN qu'un target ‹id› possède
--lld ‹driver› --op bind --mode target --tid ‹id› --initiator-address ‹address› Ajoute l'adresse à la liste d'accès au target ‹id›. Les initiators avec l'adresse peuvent accéder au target. ALL autorise l'accès à tous les initiators
--lld ‹driver› --op bind --mode target --tid ‹id› --initiator-name ‹name› Ajoute le nom de l'initiator à la liste d'accès du target ‹id›. Les initiators avec ces noms peuvent y accéder
--lld ‹driver› --op unbind --mode target --tid ‹id› --initiator-address ‹address› Supprime l'adresse d'une liste d'accès du target
--lld ‹driver› --op unbind --mode target --tid ‹id› --initiator-name ‹name› Supprime le nom de l'initiator de la liste d'accès du target
--lld ‹driver› --op update --mode target --tid ‹id› --name=‹parameter› --value=‹value› Définis/change la valeur d'un ou plusieurs paramètres de target
--lld ‹driver› --op update --mode logicalunit --tid ‹id› --lun ‹id› --params parameter=value‹,...› Définis/change la valeur d'un ou plusieurs paramètres LUN
--lld ‹driver› --op start --mode lld Démarre le lld spécifié sans redémarrer le processus tgtd.

Paramètres LUN

   Ces paramètres sont seulement applicables avec "--mode logicalunit"

vendor_id=‹string› Définis le Vendor Identification reporté par un LUN dans une donnée INQURY
product_id=‹string› Définis le Product Identification reporté par un LUN dans une donnée INQURY
product_rev=‹string› Définis le Product Revision reporté par un LUN dans une donnée INQURY
removable=‹ 0|1 › Peut être utilisé pour changer le paramètre par défaut pour le flag removable.
sense_format=‹ 0|1 › Contrôle le format du sens des données que le périphérique retourne. 0 = classique, 1 = descripteur Support
online=‹ 0|1 › Contrôle si le périphérique est en ligne ou non
mode_page=‹byte-string› Définis les pages de mode spécifique pour le périphérique et le contenu de page de mode.
readonly=‹ 0|1 › Définis le flag read-only d'un LUN
thin_provisioning=‹ 0|1 › Contrôle le provisionning pour le LUN. Ne s'applique qu'aux périphérique disk. Uniquement pour les LUN stockés dans des systèmes de fichier qui supportent FALLOC_FL_PUNCH_HOLE

Paramètres LUN SMC

   Ces paramètres ne s'appliquent qu'aux lun qui sont de type "changer".

element_type=‹ 1|2|3|4 › Contrôle le type d'élément d'un slot dans le jukebox/vtl.

        1 Medium Transport
        2 Storage Element
        3 Import/Export Element
        4 Data Transfer device (CD drive, tape drive, MO drive etc)

address=‹ 1-65535 › Utilisé pour créer/opérer sur un slot particulier
start_address=‹ 1-65535 ›,quantity=‹ 1--65535 › Utilisé pour créer/opérer sur une plage de slots.
sides=‹ 1|2 › Spécifie si le média a 1 ou 2 faces pour maintenir les données.
clear_slot=‹ 1 › Effacer un élément de stockage et supprimer tout média présent. Une fois terminé, le stockage est marqué vide.
barcode=‹string› Utilisé pour assigner un code barre à un élément. max 10 caractères
volume_tag=‹string› Permet d'assigner un tag à un volume. max 32 caractères
media_home=‹string› Spécifie un répertoire où le média virtuel pour les éléments périphérique dvd/tape sont stockés

Périphériques passthrough

   En plus de l'émulation de périphérique TGTD supporte également d'utilisation de périphériques sg sur l'hôte et l'export via un type de périphérique spécial passthrough

--bstype=sg Spécifie qu'un périphérique SG est utilisé
--device-type=pt Spécifie que le type passthrough est utilisé
--backing-store=‹/dev/sg4› Spécifie quel périphérique exporter via TGTD
--bsoflags={direct|sync} Spécifie des flags supplémentaire lors de la création d'un LUN à utiliser en ouvrant le fichier. O_DIRECT est spécifié par 'direct' et 0_SYNC par 'sync'

Hash d'en-tête et de données

   Les hash d'en-tête ed de donées peuvent être définis dans un paramètre par target. TGTD supporte 2 modes. None et CRC32C. Quand le hash est à None, tgtd négocie pour ne pas utiliser les hash, et quand CRC32C est définis, tgtd force la connection à utiliser un hash

Pour voir les paramètres courant pour le hashage
tgtadm --op show --mode target --tid 1
Pour définis le hash d'en-tête à CRC32C
tgtadm --op update --mode target --tid 1 -n HeaderDigest -v CRC32C
Pour le désactiver pour les données
tgtadm --op update --mode target --tid 1 -n DataDigest -v None

Authentification CHAP

   L'authentification CHAP est supportée pour exiger une authentification avant qu'un initiator soit autorisé à se logger et accéder aux périphériques. La passphrase est définie au niveau target. Pour créer une authentification CHAP, il faut créer un compte avec son mot de passe, puis lier le compte à un ou plusieurs target

Créer un utilisateur et le lier au target 1
tgtadm --lld iscsi --op new --mode account --user ronnie --password password
tgtadm --lld iscsi --op bind --mode account --tid 1 --user ronnie
Lister tous les comptes qui ont été créés
tgtadm --lld iscsi --op show --mode account
Aficher si un target nécessite une authentification
tgtadm --lld iscsi --op show --mode target

Sondes NOP-OUT

   tgtd peut envoyer des sondes NOP-OUT aux initiateurs connectés pour déterminer quand un initiateur est mort et quand stopper la connexion TCP. Cela peut être définis au niveau global ou par target.

Afficher les paramètres NOP-OUT
tgtadm --lld iscsi --op show --mode target
Définis NOP-OUT pour un target
tgtadm --op update --mode target --tid 1 -n nop_count -v 5
tgtadm --op update --mode target --tid 1 -n nop_interval -v 5

Portails iSCSI

   Les portails iSCSI peuvent être listés, ajoutés ou supprimés

Lister les portails définis sur le target
tgtadm --lld iscsi --op show --mode portal
Ajouter un portail
tgtadm --lld iscsi --op new --mode portal --param portal=10.1.1.101:3260
Supprimer un portail
tgtadm --lld iscsi --op delete --mode portal --param portal=10.1.1.101:3260

Connexions iSCSI

   Les connexions iSCSI peuvent être listées et fermées de force en temps réel

Lister toutes les connexions actives pour un target
tgtadm --lld iscsi --op show --mode conn --tid 1
Fermer une connexion existante
tgtadm --lld iscsi --op delete --mode conn --tid 1 --sid 2 --cid 0

Status online/offline

   Les LUN tgtd peuvent être online ou offline. Les LUN qui sont offline peut se comporter différemment d'un type de périphérique à l'autre. Les périphériques offline se comportent comme si aucun média n'était disponible et toute opération d'accès au média échoue avec une erreur. Les périphériques ne peuvent pas être mis en mode offline s'il y a des locks "PREVENT ALLOW MEDIUM REMOVAL" dans le périphérique. Similairement les média online ne peuvent pas être ejectés par logiciel quand de tels locks sont présent dans le périphérique.

Afficher le status
tgtadm --lld iscsi --mode target --op show
Changer un LUN en offline
tgtadm --tid 1 --lun 2 --op update --mode logicalunit -P Online=No

Paramètres iSNS

   La configuration iSNS pour un target se fait via tgtadm

Définis l'adresse du serveur iSNS. tgtd ne supporte qu'un serveur iSNS
tgtadm --op update --mode sys --name iSNSServerIP --value 192.168.11.133
Active/désactive iSNS
tgtadm --op update --mode sys --name iSNS --value On
Port à utiliser pour iSNS
tgtadm --op update --mode sys --name iSNSServerPort --value 3205
Active/désactiver le contrôle d'accès pour iSNS
tgtadm --op update --mode sys --name iSNSAccessControl --value Off

Exemple de création d'un jukebox DVD

Créer un jukebox DVD avec 8 tiroirs, et 2 DVD-R vides. Créer un target
tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2007-03:virtual-dvd:`hostname`
Créer un lecteur DVD et lui donner un nom. Le dvd démarre sans fichier de stockage
tgtadm --op new --mode logicalunit --tid 1 --lun 1 --device-type cd
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 --params vendor_id=STGT_DVD,product_id=DVD101,product_rev=0010,scsi_sn=STGTDVD01,removable=1
Il faut un fichier de stockage backend pour le changeur:
if [ ! -f $HOME/smc ]; then dd if=/dev/zero of=$HOME/smc bs=1k count=1; fi
Créer le périphérique SMC et lui donner un nom:
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2 --backing-store $HOME/smc --device-type changer
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params vendor_id=STK,product_id=L700,product_rev=0010,scsi_sn=XYZZY_0,removable=1
Ajouter un périphérique de transfert de donnnées:
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=4,start_address=1,quantity=1
Spécifier que le DVD (LUN 1) est le périphérique de transfert de données à créer
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=4,address=1,tid=1,lun=1
Medium Transport Elements
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=1,start_address=16,quantity=1
Définir le chemin du média virtuel
VTL=${HOME}/vtl
mkdir -p ${VTL}
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params media_home=${VTL}
Éléments de stockages - 8 commençant à l'adresse 1024
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,start_address=1024,quantity=8
Ajouter 'media' au slots 1 et 2 et laisser les autres vides
tgtimg --op new --device-type cd --type dvd+r --file ${VTL}/DISK_001
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,address=1024,barcode=DISK_001,volume_tag="A blank disk",sides=1
Et pour le slot 2:
tgtimg --op new --device-type cd --type dvd+r --file ${VTL}/DISK_002
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,address=1025,barcode=DISK_002,volume_tag="My second blank disk",sides=1
Permettre à tous les initiateurs de se connecter à ce target:
tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address ALL
Afficher le résultat
tgtadm --lld iscsi --mode target --op show
^
08 décembre 2016

htmlpdflatexmanmd




tgtimg

tgtimg

Utilitaire de fichier image target scsi

   tgtimg est un utilitaire pour initialiser des fichiers image avec métadonnées additionnelles, tel qu'un code barre, taille total, etc. que l'émulation tgtd a besoin

OPTIONS

-o, --op {new|show} Opération.
-Y, --device-type ‹type› Spécifie le type de fichier image (cd, disk, tape)
-t, --type ‹media-type› En créant une nouvelle image, spécifie le type de média à émuler:

        dvd+r Créé un DVD+R vide
        disk Créé un disque vide
        data Créé une cassette normale
        clean Créé une cassette de nettoyage
        worm Créé un worm

-b, --barcode ‹barcode› En créant une nouvelle image, spécifie le barcode à utiliser.
-s, --size ‹size› En créant une nouvelle image, spécifie la taille en Mio pour l'image tape virtuelle
-f, --file ‹path› Le nom du fichier
-T, --thin-provisioning Rend l'allocation de l'image thin.

Exemples

Créer un nouveau disque 100Mo
tgtimg --op new --device-type disk --type disk --size 100 --file /data/hd001.raw
Créer une nouvelle image tape
tgtimg --op new --device-type tape --barcode 12345 --size 100 --type data --file /data/tape001.img
Voir le contenu d'une image existante
tgtimg --op show --device-type tape --file /data/tape001.img
Créer une nouvelle image DVD-R blanche
tgtimg --op new --device-type cd --type dvd+r --file /data/dvd001.iso
^
05 décembre 2016

htmlpdflatexmanmd




nfsidmap

nfsidmap

Programme idmapper NFS

   Le protocole NFSv4 représente les valeurs UID/GID du système local en chaîne sous la forme user@domain. Le processus de traduction s'appèle l'ID mapping.

   Le système dérive la partie de la chaîne en effectuant une recherche password ou group. Le mécanisme de recherche est configuré dans /etc/idmapd.conf. Par défaut, la partie de la chaîne est le nom de domaine du système.

OPTIONS

-c Efface le keyring du toutes les clés
-d Affiche le nom de domaine NFSv4 effectif du système
-g user Révoque la clé gid du l'utilisateur donné
-l Affiche toutes les clé dans le keyring. Uniquement pas root
-r user Révoque la clé uid et gid de l'utilisateur donné
-t timeout Définis le délai d'expiration en secondes de la clé. Défaut: 600 secondes
-u user Révoque l'uid de l'utilisateur donné
-v Mode verbeux. Peut être spécifié plusieurs fois

Configuration

Le fichier /etc/request-key.conf peut être modifié pour que /sbin/sequest-key puisse diriger correctement les upcall. La ligne suivante peut être ajoutée avant qu'un call à keyctl échoue:
create id_resolver    *    *    /usr/sibn/nfsidmap -t 600 %k %d
Cela redirige toutes les requêtes id_resolver à nfsidmap.

   Le système idmapper utilise 4 descriptions de clé:

        uid Trouver l'UID pour l'utilisateur donné
        gid Trouver le GID pour le groupe donné
        user Trouver le username pour l'UID donné
        group Trouver le groupname pour le GID donné

On peut les gérer individuellement:
create id_resolver uid:*    *    /some/other/program %k %d
create id_resolver    *    *    /usr/sbin/nfsidmap %k %d
^
05 décembre 2016

htmlpdflatexmanmd




rpc.idmapd

rpc.idmapd

Mappage de nom/ID nfsv4

   rpc.idmapd est le service de mappage nom ‹-› ID NFSv4. Il fournis cette fonctionnalité aux clients et serveurs en traduisant les UID/GID en noms, et vice versa.

   Le système dérive la partie de la chaîne en effectuant une recherche password ou group. Le mécanisme de recherche est configuré dans /etc/idmapd.conf. Par défaut, la partie de la chaîne est le nom de domaine du système.

   Noter que seul les serveurs NFSv4 utilisent rpc.idmapd. Les clients NFSv4 utilisent nfsidmap, sauf en cas de problème

OPTIONS

-v Mode verbeux. Peut être spécifié plusieurs fois
-F Ne lance pas en tâche de fond
-p path Emplacement du pipefs RCP. Défaut: /var/lib/nfs/rpc_pipefs
-c path Fichier de configuration à utiliser
-C Client uniquement: n'effectue pas de mappage
-S Serveur uniquement: n'effectue pas de mappage
^
05 décembre 2016

htmlpdflatexmanmd




idmapd.conf

idmapd.conf

Fichier de configuration pour libnfsidmap

   Le fichier de configuration idmapd.conf consiste de nombreuses sections.

[General]

Verbosity Niveau de verbosité. défaut: 0
Domain Nom de domain local NFSv4
Local-Realms Liste de royaumes kerberos qui peuvent être considérés équivalent au nom de royaume local.

[Mapping]

Nobody-User Nom d'utilisateur local utilisé quand un mappage ne peut pas être trouvé
Nobody-Group Nom du groupe local utilisé quand un mappage ne pas être trouvé

[Translation]

Method Liste ordonnée de méthodes de mappage à utiliser entre les noms NFSv4 et les ID locaux. (nsswitch, umich_ldap, static)
GSS-Methods Liste ordonnée de méthodes de mappage à utiliser entre les noms authentifiés GSS et les ID locaux. Défaut: identique à Method

[Static]

   La méthode de traduction static liste les noms GSS-Autheticated en noms d'utilisateurs locaux. les entrées sont sous la forme: principal@REALM = localusername

[UMICH_SCHEMA]

LDAP_server Nom du serveur LDAP
LDAP_base Base de recherche
LDAP_people_base Base de recherche pour les comptes utilisateurs
LDAP_group_base Base de recherche pour les groupes
LDAP_canonicalize_namo Indique si les nom sont canonisés. Défaut: true
LDAP_use_ssl Active le chiffrement de la communication
LDAP_ca_cert Emplacement du certificat CA
NFSv4_person_objectclass ObjectClass pour les comptes utilisateurs. Defaut: NFSv4RemotePerson
NFSv4_name_attr Nom de l'attribut pour les noms des utilisateurs nfsv4. Défaut: NFSv4Name
NFSv4_uid_attr Nom de l'attribut maintenant l'UID. Défaut: uidNumber
GSS_principal_attr Nom de l'attribut pour les principaux GSSAPI. Défaut: GSSAuthName
NFSv4_acctname_attr Nom de l'attribut utilisé pour les noms de compte. Défaut: uid
NFSv4_group_objectclass objectClass pour les groupes. Défaut: NFSv4RemoteGroup
NFSv4_gid_attr Attribut pour le GID. Défaut: gidNumber
NFSv4_group_attr Atribut pour les noms des groupes NFSv4. Défaut: NFSv4Name
LDAP_use_memberof_for_groups à true, utilise le 'memberof' du compte pour trouver les groupes et obtenir les GID
NFSv4_member_attr Indique l'attribut à rechercher pour l'option LDAP_use_memberof_for_groups. Défaut: memberUid
NFSv4_grouplist_filter Filtre de recherche optionnel pour déterminer le groupe membership.
LDAP_timeout_seconds Délai pour les requêtes LDAP. Défaut: 4
^
05 décembre 2016

htmlpdflatexmanmd




nfs4_acl

nfs4_acl

Listes de contrôle d'accès NFSv4

Le format de sortie pour une ACL NFSv4 est:
A::OWNER@:rwatTnNcCy
A::alice@nfsdomain.org:rxtncy
A::bob@nfsdomain.org:rwadtTnNcCy
A:g:GROUP@:rtncy
D:g:GROUP@:waxTC
A::EVERYONE@:rtncy
D::EVERYONE@:waxTC

Format d'ACL

   une ACL NFSv4 est écrite comme une acl_spec, consistant d'une ou plusieurs ace_specs. Une simple ACE NFSv4 est une ace_spec de 4 champs sous la forme: type:flags:principal:permissions

Types d'ACE

A Allow - autorise un principal à effectuer les actions
D Deny - Empêche le principal d'effectuer des actions
U Audit - Log toute tentative d'accès par un principal nécessitant les permissions.
L Alarm - génère une alarme système à une tentative d'accès

Flags d'ACE

   Il y a 3 types de flags: groupe, héritage et administration. Noter que les ACE sont hérités de l'ACL du répertoire parent à leur création.

Flags de groupe

        g groupe -indique que le principal représente un groupe

Flags d'héritage

        d Les sous-répertoires créés héritent de l'ACE
        f Les fichier créé héritent de l'ACE, sans les flags d'héritage.
        n Les sous-répertoires créé héritent de l'ACE, sans les flags d'héritage
        i L'ACE n'est pas considérée dans les vérifications de permissions, mais sont héritables; cependant, ce flag est supprimé des ACE héritées

Flags d'administration

        S Déclenche une alarm/audit quand le principal est autorisé à effectuer une action couverte par les permissions
        F Déclenche une alarm/audit quand le principal n'est pas autorisé à effectuer une action couverte par les permissions

Principaux d'ACE

   Un principal est soit un utilisateur nommé, soit un groupe, ou un des 3 principaux spéciaux: OWNER@, GROUP@, et EVERYONE@, qui représentent les distinctions POSIX.

Permissions d'ACE

r fichier: lire les données / répertoire: lister le contenu
w fichier: écrire des données / répertoire: Créer des fichiers
a fichier: Ajouter des données / répertoire: Créer des sous-répertoires
x fichier: Exécuter / répertoires: Changer de répertoire
d Supprime le fichier/répertoire.
D répertoire: supprimer les fichiers et sous-répertoires.
t Lire les attributs du fichier/répertoire
T Changer les attributs du fichier/répertoire
n Lire les attributs nommés du fichier/répertoire
N Changer les attributs nommés du fichier/répertoire
c Lire les ACL
C Changer les ACL
o Changer le propriétaire du fichier/répertoire
y Autorise les clients à utiliser les E/S synchrones avec le serveur.

Flags d'héritage

   Les flags d'héritage peuvent être divisés en 2 catégories: primaire (héritage fichier/répertoire) et secondaires (pas de propagation d'héritage et héritage uniquement), qui sont seulement significatifs dans la mesure où ils affectent les 2 flags primaires.

   Les flags no-propagate-inherit et inherit-only peuvent être difficiles à retenir: le premier détermine si l'ACE hérité d'un nouveau répertoire enfant est lui-même héritable; le second détermine si une ACE héritable affecte le répertoire parent (en plus d'être héritable). Ils peuvent être utilisés en tandem.

   Quand un sous-répertoire hérite d'une ACE de l'ACL du répertoire parent, cela peut être fait de 2 manières différentes dépendant de l'implémentation du serveur:

        - Dans le premier cas, la même ACE est définis dans l'ACL du sous-répertoire
        - Dans le second cas, 2 ACE différentes sont définis dans l'ACL du sous-répertoire: un avec tous les flags d'héritage enlevés, et un avec le flag inherit-only. Cette approche simplifie la modification des droits d'accès aux sous-répertoire lui-même sans modifier les ACE héritables.

Accès refusés

   les ACE deny devraient être évités autant que possible, cela augmente la confusion et la complexité. L'ordre des ACE est importante, et en dépit de l'ambiguïté de la rfc3530, les permissions non explicitement autorisées sont refusées.
^
05 décembre 2016

htmlpdflatexmanmd




nfs4_setfacl

nfs4_setfacl, nfs4_editfacl

Manipuler les ACL NFSv4

Commandes

-a acl_spec [index] ajoute les ACE depuis acl_spec à l'ACL du fichier. Les ACE sont ajoutées à l'index donné. Défaut: 1
-A acl_file [index] ajoute les ACE depuis le fichier acl_file à l'ACL du fichier. Les ACE sont insérées à l'index donné. Défaut: 1
-x acl_spec | index supprime les ACE correspondantes à acl_spec, ou à l'index donné.
-X acl_file Supprime les ACE correspondantes à acl_spec dans le fichier acl_file.
-s acl_spec Définis l'ACL du fichier à acl_spec
-S acl_file Définis l'ACL du fichier à acl_spec du acl_file
-e, --edit Édite l'ACL du fichier dans l'éditeur définis par la variable d'environnement EDITOR, et définis l'ACL résultante en quittant l'éditeur
-m from_ace to_ace Modifie l'ACL du fichier en remplaçant from_ace avec to_ace

Notes

   Si '-' est donné avec -A -X ou -S, lit acl_spec depuis stdin

OPTIONS

-R, --recursive Applique les changement récursivement
-L, --logical Avec -R, suit les liens symboliques
-P, --physical Avec -R, ne suit pas les liens
--test Affiche le résultat au lieu de modifier effectivement l'ACL

Alias de permissions

   "read"(R), "write"(W) et "execute"(X) peuvent être utilisés pour définir les permissions. R vaut "rntcy", W vaut "watTNcCy" et X "xtcy"

Exemples

Assumant l'ACL suivante du fichier foo:
A::OWNER@:rwatTnNcCy
D::OWNER@:x
A:g:GROUP@:rtncy
D:g:GROUP@:waxTC
A::EVERYONE@:rtncy
D::EVERYONE@:waxTC
Autoriser alice@nfsdomain.org les accès "read" et "execute"
nfs4_setfacl -a A::alice@nfsdomain.org:rxtncy foo
idem, en utilisant les alias
nfs4_setfacl -a A::alice@nfsdomain.org:RX foo
Éditer l'ACL
nfs4_setfacl -e foo
Définir l'ACL depuis l'ACL d'un fichier
nfs4_setfacl -S newacl.txt foo
Définir récursivement les ACL à tous les fichiers et sous-répertoires du répertoire courant sans suivre les liens
nfs4_setfacl -R -P -S newacl.txt *
Suprimer la première ACE et afficher le résultat sans les changer
nfs4_setfacl --test -x 1 foo
Supprimer les 2 dernières ACE
nfs4_setfacl -x "A::EVERYONE@rtncy, D::EVERYONE@:waxTC" foo
Modifier la 2ème ACE
nfs4_setfacl -m D::OWNER@:x D::OWNER@:xo foo
Définir les ACL de bar et frobaz à l'ACL de foo
nfs4_getfacl foo | nfs4_setfacl -S - bar frobaz
^
05 décembre 2016

htmlpdflatexmanmd




nfs4_getfacl

nfs4_getfacl

Obtenir les listes de contrôle d'accès sur un système de fichier NFS monté

   nfs4_getfacl permet d'afficher la liste de contrôles d'accès d'un fichier ou répertoire dans un système de fichier NFSv4 monté et supportant le contrôle d'accès.

^
03 décembre 2016

htmlpdflatexmanmd




nfsiostat

nfsiostat

Émule iostat pour les points de montage NFS en utilisant /proc/self/mountstats

‹interval› Délai en seconde entre chaque rapport
‹count› Si spécifié, nombre de rapport à générer
‹options› voir plus bas
‹mount_point› affiche les statistiques sur les points de montage spécifiés

OPTIONS

-a, --attr Affiche des statistiques relatives au cache d'attributs
-d, --dir Affiche des statistiques relatives aux opérations de répertoire
-l, --list=LIST Affiche seulement des statistiques pour les points de montages spécifiés
-p, --page Affiche des statistiques relatives au cache de pages
-s, --sort Trie les points de montage par ops/secondes

Champs

op/s Nombre d'opérations par secondes
rpc bklog Longueur de file de backlog
kB/s Nombre de ko écris/lus par seconde
kB/op Nombre de Ko de écris/lus par opération
retrans Nombre de retransmissions
avg RTT (ms) Durée entre le moment où le kernel du client envoie la requête RPC jusqu'à la réception de la réponse
avg exe (ms) Durée depuis le moment où le client NFS envoie une requête RPC à son kernel jusqu'à ce que la requête RPC soit complétée, incluant le temp RTT
^
03 décembre 2016

htmlpdflatexmanmd




nfsd

nfsd, rpc.nfsd

Serveur nfs

   rpc.nfsd implémente la partie utilisateur du service NFS. La fonctionnalité principale est gérée par le module kernel nfsd. Le programme userspace spécifie quel type de socket le service kernel doit écouter, la version NFS q'uil devrait supporter, et le nombre de thread que le kernel devrait utiliser.

OPTIONS

-d, --debug Active le debug
-H, --host Spécifie un nom d'hôte particulier ou adresse d'écoute
-p, --port Port d'écoute. Défaut: 2049
-r, --rdma Active l'écoute des requêtes NFS rdma
--rdma=port Port RDMA. Défaut: 20049
-N, --no-nfs-version vers Permet de limiter le supporte de NFS à certaines versions
-s, --syslog log les messages dans syslog au lieu de stderr
-T, --no-tcp Désactive les connexions TCP pour les clients
-U, --no-udp Désactive les connexions UDP pour les clients
-V, --nfs-version vers Permet de limiter le supporte de NFS à certaines versions
-L, --lease-time lease-time nfsv4, en seconde (entre 10 et 3600). délai pour les client pour confirmer leur état avec le serveur
-G, --grace-time grace-time nfsv4. Les requêtes de fichier ouvert et les NLM ne sont pas autorisés passé ce délay pour permettre au client de récupérer l'état.
nproc Spécifie le nombre de threads nfs. Défaut: 1 thread.
^
03 décembre 2016

htmlpdflatexmanmd




mountstats

mountstats

Afficher divers statistiques client NFS par montage

Sous-commandes

mountstats Affiche une combinaison de statistiques RPC par opération, compteur d'évènements NFS, et compteur d'octets NFS
iostat Affiche des statistiques type iostat
nfsstat Affiche des statistiques type nfsstat

Options générales

-f infile, --file infile Lit les statistiques depuis le fichier au lieu de /proc/self/mountstats. Le fichier doit être dans le même format.
-S sincefile, --since sincefile Affiche la différence entre les statistiques courantes et celles dans le fichier spécifié

Options pour mountstats

-n, --nfs Affiche seulement les statistiques NFS
-r, --rpc Affiche seulement les statistiques RPC
-R, --raw Affiche des statistiques brutes

Options pour iostat

‹interval› Délai en seconde entre chaque rapport
‹count› Nombre de rapport à générer

Options pour nfsstat

-3 uniquement les statistique pour nfsv3
-4 uniquement les statistique pour nfsv4
^
03 décembre 2016

htmlpdflatexmanmd




nfsstat

nfsstat

Statistiques NFS

OPTIONS

-s, --server Affiche les statistiques côté serveur
-c, --client Affiche les statistiques côté client
-n, --nfs Affiche seulement les statistiques NFS
-2 uniquement les statistiques nfsv2
-3 uniquement les statistiques nfsv3
-4 uniquement les statistiques nfsv4
-m, --mounts Affiche des statistiques sur chaque système de fichier NFS monté
-r, --rpc Affiche seulement les statistiques RPC
-o facility Affiche les statistiques pour les facilités spécifiées:

        nfs Information du protocole NFS
        rpc Informations générales RPC
        net Statistiques niveau réseau.
        fh Informations sur le cache de gestion de fichier du serveur
        rc Informations sur le cache de réponse du serveur
        io Informations sur l'utilisation E/S
        ra Informations sur le cache readhead
        all Affiche tout

-v, --verbose Équivalent à -o all
-l, --list Affiche les informations sous forme de liste
-S, --since file Importe les statistiques depuis le fichier spécifié et affiche la différence avec les statistiques actuelles. (/proc/net/rpc/nfs pour les statistiques client) et (/proc/net/rpc/nfsd pour les statistiques serveur)
-Z[interval], --sleep=[interval] prend un snapshot des statistiques courantes, et s'arrête jusqu'à SIGINT, puis prend un second snapshot et affiche les différences. Si un interval en seconde est spécifié, attend ce délai.

Exemples

Afficher toutes les informations sur NFS:
nfsstat -o all -234
idem:
nfsstat --verbose -234
Afficher des informations sur les versions actives de NFS:
nfsstat -o all
Afficher des statistiques du serveur nfsv3
nfsstat --nfs --server -3
afficher des informations sur les systèmes de fichiers nfs montés
nfsstat -m
^
03 décembre 2016

htmlpdflatexmanmd




showmount

showmount

Afficher les informations de montage d'un serveur NFS

OPTIONS

-a, --all Liste le hostname et l'ip du client et les répertoires montés. Ne devrait pas être considéré comme fiable
-d, --directories Liste seulement les répertoires montés par certains clients
-e, --exports Affiche la liste d'export du serveur
--no-headers N'affiche pas l'en-tête dans la sortie
^
03 décembre 2016

htmlpdflatexmanmd




exportfs

exportfs

Maintient une table de systèmes de fichiers NFS exportés

   Un serveur NFS maintient une table de systèmes de fichiers physiquement local accessibles aux clients NFS. Chaque système de fichier dans cette table est appelée un système de fichier exporté, ou export. La commande exportfs maintient la table courante des exports pour le serveur NFS. La table d'export maître est conservée dans un fichier nommé /var/lib/nfs/etab. Ce fichier est lus par rpc.mountd quand un client envoie une requête NFS MOUNT.

   Normalement la table d'export maître est initialisée depuis /etc/exports. Cependant, il est possible de supprimer des exports dans modifier /etc/exports. exportfs et sont partenaire rpc.mountd fonction en fournissant le système de fichier virtuel nfsd qui est monté dans /proc/fs/nfsd ou /proc/fs/nfs. exportfs ne donne pas d'informations au kernel, mais les fournis à rpc.mountd via le fichier /var/lib/nfs/etab. rpc.mountd peut ainsi gérer les requêtes kernel concernant les exports.

OPTIONS

-d, --debug kind Active le debug, (all, auth, call, general et parse)
-a Exporte ou dé-exporte tous les répertoires
-o options,... Spécifie une liste d'options d'exports
-i Ignore /etc/exports. Seules les options sur la ligne de commande et les options par défauts sont utilisées
-r Ré-exporte tous les répertoires. synchronise /var/lib/nfs/etab avec /etc/exports.
-u dé-exporte un ou plusieurs répertoires
-f Si /proc/fs/nfsd ou /proc/fs/nfs est monté, vide tout la table d'export du kernel, rafraîchi les entrées pour les clients actifs et les ajoute à la table d'export du kernel.
-v mode verbeux
-s Affiche la liste d'export courante.
^
03 décembre 2016

htmlpdflatexmanmd




/etc/exports

/etc/exports, /etc/exports.d

Fichier d'exports NFS

   Le fichier /etc/exports contient une table de systèmes de fichiers physiques locaux d'un serveur NFS accessibles aux clients NFS.

Formats des noms de machine

nom d'hôte un hôte peut être spécifié soit par son nom abrégé reconnu par le resolver, son fqdn, une adresse IPv4 ou IPv6
Réseaux IP il est possible d'exporter des répertoires à tous les hôte dans un sous-réseau en spécifiant ‹address›/‹netmask›, ou le masque peut être sous la forme /255.255.255.0 ou /24.
wildcards Les noms des machines peuvent contenir des caractère '*' ou '?' ou une classe de caractère entre crochets
netgroups Les netgroups NIS peuvent être donnés sous la forme @group. Seule la partie hôte du chaque membre du netgroup est vérifié.
anonymous Spécifié par '*' et matche tous les clients.

   Si un client matche plus d'une définition, seul le premier match de la liste est considéré.

Sécurité RPCSEC_GSS

   Les chaînes "gss/krb5", "gss/krb5i" ou "gss/krb5p" peunvent être utilisés pour restreindre l'accès aux clients utilisant la sécurité rpcsec_gss. Cependant, cette syntaxe est dépréciée, utiliser l'option "sec=":

   L'option sec=, suivi par une liste de mécanismes de sécurité, restreints l'export aux clients utilisant ces mécanismes: sys (défaut = pas de sécurité cryptographique), krb5 (authentification uniquement), krb5i (protection d'intégrité), et krb5p (chiffrement). La négociation suit l'ordre listé, le mécanisme préférentiel est listé en premier.

Options Générales

secure|insecure Cette option nécessite que les requêtes viennent d'un port inférieur à IPPORT_RESERVED (1024). Activée par défaut.
rw|ro Autoriser les requêtes de lecture/écriture ou de lecture seulement.
[a]sync async permet au serveur NFS de violer le protocole NFS et de répondre aux requêtes avant tout changement sur disque. Cela améliore les performance, mais peut cause une perte de données en cas de crash.
[no_]wdelay avec async, Le serveur NFS retarde normalement une requête d'écriture sur disque s'il suspecte qu'une autre requête d'écriture liée est en cours ou va se produire bientôt. Cela permet à plusieurs requêtes d'écritures d'être committed en une opération ce qui améliore les performances. Si un serveur reçoit principalement des petites requêtes non liées, ce comportement peut cependant réduire les performance. no_wdelay permet de désactiver ce comportement.
[no]hide Normalement, si un serveur exporte 2 systèmes de fichiers donc 1 est monté dans l'autre, le client devra monter les 2 systèmes de fichier explicitement. Si monte seulement le parent, il verra un répertoire vide à l'emplacement du 2eme fs. Il est 'caché'. nohide permet de ne pas cacher ce système de fichier. Cependant, certains client NFS ne gèrent pas cette situation, par exemple, il est possible que 2 fichiers aient le même numéro d'inode.
[no]crossmnt Similaire à nohide, mais rend possible l'accès à tous les systèmes de fichier monté dans le système de fichier marqué avec crossmnt. Donc un fs enfant "B" est monté dans un parent "A" a le même effet que nohide sur B. Avec nohide les fs enfant doivent être explicitement exportés, avec crossmnt ce n'est pas nécessaire. Si un enfant d'un fichier crossmnt n'est pas explicitement exporté, il l'est implicitement avec les mêmes options que le parent, à l'exception de fsid=.
[no_]subtree_check no_subtree_check désactive la vérification de l'arborescence, qui a de légères implications de sécurité, mais peut améliorer les performances dans certaines circonstances. Pour effectuer cette vérification, le serveur doit inclure des informations sur l'emplacement du fichier dans le filehandle donné au client. Cela peut poser problème en accédant à des fichiers qui sont renommé pendant qu'un client les ouvre. La vérification du subtree est également utilisée pour s'assurer que les fichiers dans les répertoire que seul root peut accéder peuvent seulement être accedés si le fs est exporté avec no_root_squash., même si le fichier lui-même autorise un accès plus large. un fs home devrait être exporté avec no_subtree_check. Un fs principalement lecture seule ou n'a pas de renommage important de fichiers (ex: /usr, /var), et pour lesquels les sous-répertoires peuvent être exportés, devraient probablement être exporté avec subtree_check.
[in]secure_locks|[no_]auth_nlm Indique que le serveur NFS n'exige pas d'authentification pour les requêtes le lock (qui utilisent le protocole NLM) Normalement le serveur NFS exige qu'une requête lock maintienne un accréditif pour un utilisateur qui a un accès en lecture sur le fichier.
mountpoint=path|mp Permet d'exporter seulement un répertoire si a été monté avec succès. Si aucun chemin n'est donné le point d'export doit être un point de montage. Cela permet de s'assurer que le répertoire sous un point de montage ne sera jamais exporté par accident si, par exemple, le fs échoue le montage dû à une erreur disque.
fsid=num|root|uuid NFS doit être capable d'identifier chaque système de fichier qu'il exporte. Normalement il utilise un UUID ou un numéro de périphérique. Il peut être nécessaire d'identifier explicitement un système de fichier dans certains cas. root ou 0 indiquent le système de fichier identifié comme le parent de tous les autres fs exportés.
nordirplus Désactive la gestion des requêtes READDIRPLUS. NFSv3 uniquement
refer=path@host[+host][:path@host[+host]] Un client référençant le point d'export sera dirigé pour choisir depuis la liste d'emplacement alternative pour le système de fichier.
replicas=path@host[+host][:path@host[+host]] Si le client demande un emplacement alternatif pour le point d'export, il obtiendra cette liste d'alternatifs.
pnfs Active l'extension pNFS, qui permet au client de bypasser le serveur et d'effectuer les opération d'E/S directement dans les périphériques.

Mappage d'ID utilisateur

   nfsd base sont contrôle d'accès aux fichier sur le serveur sur l'uid et le gid fournis dans chaque requête RPC NFS. Le comportement normal qu'un utilisateur attend et qu'il peut accéder à ses fichier sur le serveur comme dans un serveur de fichier normal. Cela nécessite que les même uids et gids soient utilisés dans le client et le serveur. Cela n'est pas toujours vrai, ni toujours désirable.

   Très souvent, il n'est pas désirable que root sur une machine soit également traitée en root en accédant à des fichiers sur un serveur NFS. l'uid 0 est normalement mappé à un autre id: nobody. Cette méthode, le root squashing, est le mode par défaut.

   Par défaut, exportfs choisis un uid et gid à 65534 pour l'accès squashed. Ces valeurs peuvent être changées par les options anonuid et anongid. Finalement on peut mapper toutes les requêtes utilisateur à l'uid anonyme avec l'option all_squash.

[no_]root_squash Map les requête pour uid/gid 0 en uid/gid anonyme
[no_]all_squash Map tous les uid/gid un uid/gid anonyme
anonuid, anongid Définis explicitement l'uid/gid anonyme

Table d'exports Extra

   Une fois la lecture de /etc/exports, exportfs lit les fichiers dans /etc/exports.d. Seul les fichiers se terminant par .exports sont lus.

Exemple

Exporter tout le système de fichier aux machines master et trusty, avec accès rw et désactivation du squashing
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
Exporter /usr en lecture seule à tous les hôtes du domain .local.domain, et en lecture/écriture à tous les membres du netgroup trusted
/usr *.local.domain(ro) @trusted(rw)
Exporter /home/joe pour pc001, avec activation du squashing pour tous les utilisateurs, et redéfinition du compte anonyme
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
Exporter /pub en lecture seul à tous le monde
/pub *(ro,insecure,all_squash)
Exporter /srv/www en activant l'option sync à la machine "server" et aux membres de @trusted et @external
/srv/www -sync,rw server @trusted @external(ro)
Exporter /foo en IPv4 et IPv6
/foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
Utiliser les plages entre [] pour spécifier plusieurs noms d'hôte.
/build buildhost[0-9].local.domain(rw)
^
25 novembre 2016

htmlpdflatexmanmd




tgtd

tgtd

Service de target SCSI

   tgtd est un service de target SCSi. Il peut être utilisé pour fournir un service de target SCSI sur un réseau, comme iSCSI. tgtd fournis le support pour des périphériques émulé et réel. tgtd peut émuler les types de périphériques suivants:

        disk Disque normal. Émule un disque SCSI
        tape Périphérique tape. Émule un lecteur cassette SCSI
        cd Périphérique CD. Émule un graveur DVD SCSI
        changer Émule un périphérique changeur pour une librairie cassette virtuel ou un jukebox DVD

OPTIONS

-d, --debug ‹INTERGER› Mode debug
-f, --foreground Ne met pas en tâche de fond
-C, --control-port ‹INTERGER› port de contrôle à utiliser pour cette instance.
--iscsi ‹...› Options spécifiques à ISCSI.

Options iSCSI

portal=‹ip-address[:port]› lie tgtd à un ip/portail et/ou port. par défaut tgtd écoute sur toutes les adresse sur le port 3260.
nop_interval=‹integer› Définis l'interval par défaut pour envoyer NOP-OUT pour sonder les initiateurs connectés. Ne contrôle que la valeur par défaut pour les targets. Défaut: 0 = désactivé
nop_count=‹integer› Nombre de NOP-OUT échoués avant de considérer l'initiateur mort et fermer la session. Défaut: 0

Variables d'environnement

TGT_IPC_SOCKET=‹path› Définis, tgtd et tgtadm utilisent le socket IPC spécifié au lieu de /var/run/tgtd/socket.0
^
25 novembre 2016

htmlpdflatexmanmd




istgt.conf

istgt.conf

Fichier de configuration pour istgt

[Global]

Comment "Section Globale"
NodeBase Nom du nœud (ex: "iqn.2007‐09.jp.ne.peach.istgt")
PidFile Fichier pid. Défaut: /var/run/istgt.pid
AuthFile Fichier pour l'authentification. Défaut: /etc/istgt/auth.conf
MediaDirectory Pour les média amovibles (DVD/tape). Défaut: /var/istgt
LogFacility Facilité syslog (défaut: local7)
Timeout Timeout d'E/S socket. Défaut: 30
NopInInterval Interval d'envoie de NOPIN. Défaut: 20
DiscoveryAuthMethod Auto|CHAP Information d'authentification pour la session découverte
DiscoveryAuthGroup AuthGroup9999 idem
MaxSessions 16 Sessions maximum réservés
MaxConnections 4 Connexions maximum réservés
MaxR2T 32 Nombre maximum d'envoie R2T dans chaque connexion. 0 désactive, 1-256.
MaxOutstandingR2T
DefaultTime2Wait
DefaultTime2Retain
FirstBurstLength
MaxBurstLength
MaxRecvDataSegmentLength
InitialR2T Yes|No
ImmediateData Yes
DataPDUInOrder Yes
DataSequenceInOrder Yes
ErrorRecoveryLevel 0

[UnitControl]

Comment "Commentaire pour ce contrôleur"
AuthMethod Auto|CHAP ‹Mutual›
AuthGroup AuthGroup10000
Portal UC1 ‹IP›:3261
Netmask ‹IP›

[PortalGroup1]

Comment "Commentaire"
Portal ‹label› ‹IP›:‹port›

[InitiatorGroup1]

Comment "Initiator Group1"
InitiatorName "[!]‹iqn...›"|ALL Nom de l'initiateur. ! refuse le login/découverte
Netmask ‹ip/mask›

[LogicalUnit1]

Comment "Disque 1"
TargetName disk1 Nom du target
TargetAlias "Data Disk1" Alias pour ce target
Mapping PortalGroup1 InitiatorGroup1 Utilise les initiators via les portails
AuthMethod Auto
AuthGroup AuthGroup1
UseDigest Header Data|Auto
UnitType Disk UnitInquiry ‹vendor› ‹Product› ‹Revision› ‹Serial›
QueueDepth 0-255 0=désactivé, 1-255 activé avec la profondeur spécifiée. Défaut: 32
MaxOutstandingR2T 16
DefaultTime2Wait 2
DefaultTime2Retain 60
FirstBurstLength 262144
MaxBurstLength 1048576
MaxRecvDataSegmentLength 262144
InitialR2T Yes
ImmediateData Yes
DataPDUInOrder Yes
DataSequenceInOrder Yes
ErrorRecoveryLevel 0 Remplacer les paramètres globaux
LUN0 Storage ‹vol-path› ‹size› Volume logique pour cet unité dans LUN0
LUN0 Option RPM 7200 Spécifier la vitesse de rotation du disque. 0=non reporté, 1=SSD, ؏= vitesse de rotation.
LUN0 Option FormFactor 2 format du disque: 0=non indiqué, 1=5,25, 2=3.5, 3=2.5, 4=1.8, 5=moins de 1,8 pouces
LUN0 Option ReadCache Disable Pour une utilisation future
LUN0 Option WriteCache Disable Pour une utilisation future
^
14 novembre 2016

htmlpdflatexmanmd




istgt

istgt

Target iSCSI

   istgt est un target iSCSI conçus pour les nœuds de cluster multipath.

OPTIONS

-c config fichier de configuration à utiliser.
-p pidfile Fichier PID à écrire
-l facility Facilité syslog à utiliser
-m mode Mode opérationnel 0 = traditionnel (==20100707), 1 = normal (défaut), 2 = expérimental.
-t flag Affiche des informations de suivi sur stderr (all, net, iscsi, scsi, lu, none)
-q mode silencieux
-D Ne met pas en tâche de fond

Fichiers

/etc/istgt/istgt.conf Fichier de configuration
/etc/istgt/auth.conf fichier d'information d'authentification
/var/run/istgt.pid Fichier PID
^
14 novembre 2016

htmlpdflatexmanmd




istgtcontrol

istgtcontrol

Utilitaire de commande de target iSCSI

   istgtcontrol est un utilitaire de contrôle pour istgt. Il peut être utilisé pour requêter et changer le status d'une instance istgt locale ou distante. Par défaut il se connection et d'authentifite au portail de target iSCSI dans istgtcontrol.conf.

Commandes

noop Ne fait rien, test simplement la réactivité du portail et l'authentification CHAP.
version Affiche la version de istgt auquel istgtcontrol est connecté
list Lister tout, ou les targets spécifiées, qui sont partagés par le portail
load charge un nouveau média sur l'unité spécifié. Émet la même commande que si le lecteur avait été fermé dans le périphérique scsi
unload Débranche un média de l'unité spécifiée
change file Change le média chargé par l'unité spécifiée
reset Réinitialise le LUN spécifié du portail
info Affiche toutes les connexions du portail

OPTIONS

-c config Fichier de configuration à utiliser. Défaut: /etc/istgt/istgtcontrol.conf
-h host Remplace le portail de target par le nom d'hôte/IP spécifié. Défaut: localhost si rien n'est spécifié dans le fichier de configuration
-p port Remplace le port. Défaut: 3261 si rien n'est spécifié dans le fichier de configuration
-t target Spécifie le IQN target affecté par la commande
-l lun Spécifie le LUN target affecté par la commande. Défaut: 0
-f flags flags passé au portail en chargeant un nouveau média. Défaut: 'ro' (ro, rw, extend, dynamic)
-s size Spécifie la taille du media à charger.
-q mode silencieux
-v mode verbeux
-A method Définis la méthode d'authentification préférée pour la connextion au portail. (CHAP/Mutual ou CHAP/Auto)
-U user Username pour s'authentifier au portail
-S secret Mot de passe pour s'authentifier au portail
-M muser Username d'authentification mutuelle
-R msecret Password d'authentification mutuelle
^
14 novembre 2016

htmlpdflatexmanmd




isnsadm.conf

isnsadm.conf, isnsd.conf, isnsdd.conf

Fichiers de configuration iSNS

   Tous les utilitaires Open-iSNS lisent leur configuration dans un fichier dans /etc/isns. Il y a un fichier par application, isnsd, isnsadm, et isnsdd. Des valeurs de délai acceptent une unité: d (jour), h (heure), m (minute), ou s (seconde).

Options génériques

HostName Par défaut, les applications Open-iSNS récupèrent le nom d'hôte de la machine avec gethostname(3), et utilisent une recherche DNS pour retrouver le nom canonique. Cette option remplace ce mode
SourceName Obligatoire pour toutes les applications Open-iSNS. Devrait être le nom qui identifie le client de manière unique. Il y a 2 lectures de la rfc4171, une exige qun nom iSCSI tel que 'iqn.2001-04.com.example.host', et une autre suggère un format plus simple, tel que fqdn du client.
IQNPrefix Spécifie le préfixe de nom qualifié iSCSI; doit être sous la forme iqn.YYYY-MM, YYYY étant l'année et MM le mois.
ServerAddress (client) Spécifie le nom d'hôte ou l'adresse du serveur iSNS à contacter.
SLPRegister (serveur) À 1, le service s'enregistre lui-même avec le service SLP. Cela permet aux clients de contacter le serveur sans avoir à configurer d'adresse statiquement.
PIDFile (serveur) Spécifie le nom du fichier pid. Défaut: /var/run/isnsd.pid

Options liée à la base de données

Database Spécifie comment la base est stockée. Vide, la base est conservée en mémoire, sinon, c'est le répertoire où isnsd conserve sa base.
DefaultDiscoveryDomain iSNS définis la visibilité des autres nœuds en utilisant les Discovery Domains. Un nœud de stockage A ne verra que le nœud de stockage B, s'ils sont membres du même domaine de découverte. À 1, indique à isnsd de créer un domaine de découverte virtuel, qui maintient tous les nœuds qui ne font pas partie d'un domaine de découverte configuré administrativement.
RegistrationPeriod Le serveur iSNS peut purger les entités enregistrées après une certaine période d'inactivité. Les clients qui s'enregistrent sont supposés rafraîchir leur enregistrement dans cette période.
ESIRetries Open-iSNS est capable de monitorer l'accessibilité des nœuds de stockage et leur portails en utilisant une fonctionnalité de protocole appelé ESI (Entity status inquiry). Les clients demandent à superviser ESI en enregistrant un port ESI avec chaque portail. Le serveur envoie des messages ESI à ces portails à interval régulier. Si le portail échoue à répondre plusieurs fois, il est considéré mort, et sera supprimé de la base. ESIRetries spécifie le nombre max de tentative. Défaut: 3
ESIMinInterval interval ESI minimum. Défaut: 60 secondes
ESIMaxInterval Interval ESI maximum. Défaut: 10 minutes
SCNRetries Les clients iSNS peuvent enregistrer leur message SCN (State Change Notification) reçus pour connaître les changements dans la base iSNS. Spécifie le nombre de tentatives de transmission d'une message SCN par le serveur avant abandon. Défaut: 3
SCNCallout Chemin du programme helper que isnsdd invoque quand il traite un SCN d'un serveur. Ce programme est invoqué avec un argument indiquant le type d'événement (add, update, ou remove), suivi par une liste d'attributs name=value, en utilisant les noms et conventions décris dans isnsadm.

Options liées à la sécurité

   Le standard iSNS définis une méthode d'authentification basée sur l'algorithme DSA. Les participants dans l'échange authentifient les messages en ajoutant un bloc d'authentification contenant un horodatage, une chaîne identifiant la clé utilisée, et une signature numérique du message. La même méthode est également utilisée par SLP.

   La chaîne contenue dans la bloc d'authentification est référée au SPI (Security Policy Index). Cette chaîne peut être utilisée par le serveur pour rechercher la clé publique du client; donc la chaîne peut être utilisée comme nom du fichier de clé publique dans un répertoire, ou pour récupérer un certificat dans LDAP.

   Pour les applications clientes Open-iSNS, il y a seulement 2 clés: la clé privée du client, utilisée pour signer les message qu'il envoie au serveur, et la clé publique du serveur, utilisée pour vérifier la signature des messages du serveur.

   Le serveur iSNS doit, en plus de sa clé privée, accéder à toutes les clés publiques des clients qui vont communiquer avec lui.

Security Active l'authentification DSA. à 1, le client signe tous les message, et s'attend à des messages serveur signés.
AuthName Chaîne utilisée come SPI dans tous les messages sortants qui ont un bloc auth. Défaut: le nom d'hôte (voir l'option HostName)
AuthKeyFile Chemin de la clé DSA encodé PEM. Défaut: /etc/isns/auth_key
ServerKeyFile (client), fichier contenant la clé publique DSA encodé PEM du serveur. Défaut: /etc/isns/server_key.pub
KeyStore (serveur) spécifie l'emplacement des clés.
Auth.ReplayWindow Pour compenser le décalage d'horloge entre 2 hôtes, Open-iSNS applique un léger flou en comparant les horodatages contenus dans le message et l'horloge système. Défaut: 5m
Auth.TimestampJitter En vérifiant les messages entrant, Open-iSNS vérifie que les horodatages envoyés par le pair sont augmenté monotoniquement. Pour compenser le réordonnancement des messages par le réseaux, un jitter est accepté. Si un horodatage d'un message entrant n'est pas avant cette durée en seconde, le message est accepté. Défaut: 1s

Stockage de clé et stratégie

   L'implémentation actuelle supporte 2 types de stockage de clé. Le premier utilise un simple répertoire pour stocker les clés publiques, chaque clé a un fichier PEM et nommé par le SPI du client. Ce type n'est pas recommandé puisqu'il ne stock aucune information de stratégie.

   L'approche recommandé est d'utiliser une base de donnée. Celà utilise des objets de stratégie spécifique aux vendeurs pour gérer les chaîne SPI, clé publique, noms d'entité, nom de source et d'autres bits de statégie. La base de données est configurée en définissant l'option KeyStore à la valeur DB:. Les objets de stratégie Open-iSNS ont les attributs suivants, en plus du SPI:

Source Nom de nœud source que le client doit utiliser. Défaut: la chaîne SPI
Functions bitmap détaillant quelles fonctions le client peut invoquer. Les noms de bit correspondent aux noms cours utilisé dans la rfc4711, tel que DevAttrReg, DevAttrQry, etc. Défaut: autorise l'enregistrement, requête et désenregistrement, et SCNRegister
Entity name C'est le nom de l'entité assigné au client. Si définit, un enregistrement par le client n'est pas autorisé avec un autre nom. Si le client s'enregistre sans identifiant d'entité, le serveur le nom donné par la stratégie. Défaut: pas de restriction
Object access Champ de bits de permission d'accès pour chaque type d'objet (lecture, écriture).
Node types Champ de bits décrivant quels types de nœud de stockage un client peut enregistrer. (target, initiator ou control). Défaut: initiator uniquement.

Options liées au réseau

Network.MaxSockets Nombre de connexion entrantes acceptées. Défaut: 1024.
Network.ConnectTimeout timeout d'attente d'établissement de connexion TCP. Défaut: 60s
Network.ReconnectTimeout Si une connextion échoue, délai d'attente avant de retenter. Défaut: 10s
Network.CallTimeout Délai d'attente de timeout d'un appel au serveur iSNS. Défaut: 60s.
^
14 novembre 2016

htmlpdflatexmanmd




isnsadm

isnsadm

Utilitaire client iSNS

   isnsadm est un utilitaire permettant d'interragir avec un serveur iSNS.

OPTIONS

-c filename, --config filename Spécifie le fichier de configuration. Défaut: /etc/isns/isnsadm.conf
-d facility, --debug facility Active de débug. facility peut être:

        socket Transmission/réception réseau
        auth Informations liées à l'authentification et la sécurité
        message couche du protocole iSNS
        state État de la base de données
        scn Message SCN (state change notification)
        esi message ESI (entity status inquiry)
        all Tout

--local Utilise un socket Unix pour dialoguer avec le serveur iSNS. Uniquement disponible par root
-s servename, --server servername Serveur à utiliser.
--control Identité d'un nœud de contrôle. Les nœud de contrôle sont spéciaux et ont plus de droits d'accès et modification dans la base que les nœuds de stockage normaux.
--key attr=value mode enregistrement uniquement, et permet de spécifier une clé.
--keyfile=filename En créant une stratégie pour un nouveau client iSNS, isnsadm est capable de générer une clé DSA pour le client. La partie publique est stockée dans l'objet stratégie, et la partie privée est stockée dans le fichier spécifié par l'option keyfile.

Attributs supportés

   La plupart des modes prennent une liste d'attributs comme argument sur la ligne de commande. Le nommage et la syntaxe de ces attributs sont les même pour tous les modes. Cependant, certains mode ne supporte qu'un jeu limité d'attribut.
   Les attributs sont généralement donnés en name=value. Les attributs vides sont supportés.

entity-id (alias eid)(tag 1) Network Entity
entity-prot (tag 2) Network Entity
entity-index (tag 7)
iscsi-name (tag 32) iSCSI Storage Node
iscsi-node-type (tag 33)
iscsi-alias (tag 34)
iscsi-idx (tag 36)
iscsi-authmethod (tag 42)
portal-addr (tag 16)
portal-port (tag 17)
portal-name (tag 18)
portal-esi-port (tag 20)
portal-esi-interval (tag 21)
portal-idx (tag 22)
portal-scn-port (tag 23)
portal-group-index (tag 52) Portal Group
pg-name (tag 48)
pg-addr (tag 49)
pg-port (tag 50)
pg-tag (alias pgt)(tag 51)
pg-idx (tag 52)
dd-id (tag 2065) Discovery Domain
dd-name (tag 2066)
dd-member-iscsi-idx (tag 2067)
dd-member-name (tag 2068)
dd-member-fc-name (tag 2069)
dd-member-portal-idx (tag 2070)
dd-member-addr (tag 2071)
dd-member-port (tag 2072)
dd-features (tag 2078)
policy-name (alias spi) Policy Object
policy-key -
policy-entity -
policy-node-type -
policy-object-type -
policy-functions -

Attributs Portail

   Les informations de portail sont transportés par 2 attributs séparés dans iSNS; un attribut address maintenant l'adresseIP, et l'attribut port maintenant le numéro de port et le protocole utilisé. isnsadm supporte une notation représentant un portail comme un pseudo-attribut. Ces 2 syntaxes sont équivalentes:

  

Attributs de champ de bits

   Les attributs iSNS sont des mots représentant un champ de bit. isnsadm affiche et parcour ces attributs au format human-readable au lieu d'utiliser la valeur numérique. En spécifiant un attribut bitfield, il est possible de combiner les caractères '+' ou ',': node-type=control+initiator

Mode enregistrement

   Le mode enregistrement est séléctionné en utilisant l'option --register, suivi par une liste d'un ou plusieurs objets à enregistrer avec le serveur iSNS. Par défaut, cela créé une entité réseau pour le client s'il n'en existe pas, et place les nouveau objets dedans. Généralement, on enregistre tous les objets pour une entité réseaux en une seule opération. Chaque objet est spécifié comme un type, optionnellement suivis par une liste d'attributs: target=iqn.2005-01.org.open-iscsi.foo:disk1,alias=disk1. Les types d'objets suivants sont supportés:

        entity=name Indique au serveur de grouper tous les objets dans l'objet conteneur Network Entity. Normalement, le serveur iSNS assigne automatiquement un nom d'entité qui est en phase avec ses stratégies, et il n'y a pas besoin de le spécifier explicitement.
        initiator[=name] Enregistre ne nœud de stockage iSCSI de type initiator.
        target[=name] Enregistre un nœud de stockage de type target.
        control[=name] Enregistre un nœud de stockage de type control.
        portal=[address:port/proto] Enregistre un portail en utilisant l'adresse donnée.
        pg Ergesitre un groupe de portail joignant le portail et nœud précédant. Les groupes de portail peuvent être utilisés pour décrire les portails préférés pour un nœud donné.

   Il y a 2 options de ligne de commande additionnels utilisés exclusivement avec le mode enregistrement. --replace recréé une nouvelle entité réseau, le serveur supprime l'ancien et tous les nœud et portails qu'il contient. --key permet de remplace simplement une partie de l'entité réseaux.

par exemple, supposons une entité contenant le portail 10.1.1.1:860, et l'adresse du client changé en 10.2.7.7:
isnsadm --replace --key portal=10.1.1.1:860 portal=10.2.7.7:860

   L'option --key ne reconnaît qu'un sous-jeu d'attributs:

        Entity eid=identifier
        Portail portail=address:port
        iSCSI Node iscsi-name=name

Mode requête

   Le mode Query consiste d'une liste de paires attr=value. Tous les attributs doivent appartenir au même type d'objet. Il est également possible de spécifier un nom d'attribut sans valeur qui match tout objet possédant un tel attribut sans regarder sa valeur.

Mode liste

   Affiche tous les objets d'un type donné, optionnellement restreint aux valeurs d'attribut correspondant. Les argument sont des noms de type (entities, nodes, portails, dds, ddsets, portail-groups et policies"

Mode dé-enregistrement

   deregistration supporte le même jeu d'attributs que le mode query.

Discovery Domain Registration

   Ce mode permet d'enregistrer un domaine de découverte ou d'ajouter de nouveaux membres. Seule des attributs de domaine de découvert sont reconnus.

Discovery Domain Deregistration

   Permet de dé-enregistrer un domaine de découverte. Supporte le même jeu d'attributs que le mode query.

Enrôlement client

   Ce mode ne fonctionne que quand le serveur reconnaît le client comme ayant des capacités de nœud contrôle, qui est possible de 2 manières, avec --local en root sur l'hôte isnsd, ou --control. Pour enrôler un client, utiliser l'option --enroll, suivis par le nom source du client à enrôler. La chaîne sera utilisé comme nom de stratégie de sécurité que le client utilise pour s'identifier lui-même. Les attributs supportés sont:

name (alias spi) Nom de stratégie
key Clé publique du client
entity Identifiant d'entité assignée
node-type Types de nœud permis
node-name Noms de nœud permis
functions Bitmap des fonctions permises
object-type Masque d'accès aux objets

   Note: pour générer une clé DSA, un jeu de paramètres DSA doit être installé. Par défaut isnsadm s'attend à le trouver dans /etc/isns/sda.params. Ces paramètres sont créé par isnsd --init une fois sur le serveur. Alternativement, la commande suivante peut être utilisée: openssl dsaparam 1024 -out /etc/isns/dsa.params

Exemples

Initialiser les paramètres et clé DSA du serveur
isnsd --init
Créer un objet policy pour un nœud nommé isns.control, en lui octroyant les privilèges control
isnsadm --local --keyfile=control.key --enroll isns.control node-type=ALL functions=ALL object-type=ALL
Créer un objet nœud de stockage pour la machine de gestion
isnsadm --local --register control
dans cette machine, enrôler les hôtes supplémentaires
isnsadm --control --keyfile=somehost.key --enroll iqn.2005-01.org.open-iscsi.somehost node-type=target+initiator
Pour créer un domaine de découverte, et y ajouter de nœuds
isnsadm --control --dd-register dd-name=mydomain member-name=iqn.org.bozo.client iqn.org.bozo.jbod ...
Ajouter des membres à un DD existant
isnsadm --control --dd-register dd-id=42 member-name=iqn.com.foo member-name=iqn.com.bar
l'ID DD peut être obtenu avec
isnsadm --control --query dd-name=mydomain
En mode management, enregistrer un nœud et portail dans un hôte nommé client.bozo.org
isnsadm --control --register entity=client.bozo.org initiator=iqn.org.bozo.client portal=191.168.7.1:860
^
14 novembre 2016

htmlpdflatexmanmd




isnsdd

isnsdd

Service de découverte iSNS

   isnsdd est un service coté client pour iSNS. Il enregistre des nœuds de stockage et des portails avec le service iSNS, et rafraîchis ces enregistrements. Le service s'enregistre lui-même également pour recevoir les notifications SCN, et les traite. Il peut être configuré pour invoquer une application externe pour chaque notification reçue. Le nom du programme peut être appelé avec l'option SCNCallout.

OPTIONS

-c filename, --config filename Spécifie le fichier de configuration. Défaut: /etc/isns/isnsdd.conf
-F, --foreground Ne lance pas en tâche de fond
--role role Indique avec quelle capacité le service doit s'enregistrer. (initiator ou control). Défaut: initiator.
-d facility, --debug facility Active de débug. facility peut être:

        socket Transmission/réception réseau
        auth Informations liées à l'authentification et la sécurité
        message couche du protocole iSNS
        state État de la base de données
        scn Message SCN (state change notification)
        esi message ESI (entity status inquiry)
        all Tout
^
14 novembre 2016

htmlpdflatexmanmd




isnsd

isnsd

Service iSNS

   isnsd implémente le protocole iSNS (Internet Storage Name Service) tel que définis dans la rfc4171. iSNS est un protocole de découverte pour iSCSI et iFCP

OPTIONS

-c filename, --config filename Fichier de configuration à utiliser. Défaut: /etc/isns/isnsd.conf
-F, --foreground Ne lance pas en tâche de fond
-4 Crée un socket IPv4 uniquement
-6 Créé un socket IPv6 iniquement. Mode par défaut
-d facility, --debug facility Active de débug. facility peut être:

        socket Transmission/réception réseau
        auth Informations liées à l'authentification et la sécurité
        message couche du protocole iSNS
        state État de la base de données
        scn Message SCN (state change notification)
        esi message ESI (entity status inquiry)
        all Tout

--dump-db Fonction helper qui lit la base et l'affiche sous forme compréhensive.
--init Créé une clé d'authentification serveur, et les paramètres DSA requis.
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-inq

iscsi-inq

Utilitaire de requête de donnée INQUIRY depuis un LUN iSCSI

OPTIONS

-i, --initiator-name=‹IQN› Spécifie le nom de l'initiateur que iscsi-ls utilise en se loggant dans la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-inq'
-e, --evpd=‹INTEGER› Par défaut affiche les données standards. à 1, affiche les pages VPD étendues.
-c, --pagecode=‹INTEGER› Spécifie quelle page VPD afficher quand evpd est demandé. Défaut: 0x00 qui représente les pages VPD supportées
-d, --debug=‹INTEGER› Mode débug

Exemples

Afficher la page INQUIRY standard
iscsi-inq iscsi://192.0.2.1/iqn.ronnie.test/1
Lister les pages disponibles
iscsi-inq -e 1 iscsi://192.0.2.1/iqn.ronnie.test/1
Affiche une page spécifique
iscsi-inq -e 1 -c 0x80 iscsi://192.0.2.1/iqn.ronnie.test/1
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-iname

iscsi-iname

Outil de génération de nom d'initiateur iSCSI unique

OPTIONS

[-p=]prefix Préfixe passé au lieu de "iqn.2005-03.org.open-iscsi"
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-ls

iscsi-ls

Lister les targets iSCSI et les LUN

OPTIONS

-i, --initiator-name=‹IQN› Spécifie le nom de l'initiateur que iscsi-ls utilise en se loggant dans la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-ls'
-s, --show-luns Affiche en plus les LUN et leur types dans chaque cible découvertes
-d, --debug=‹INTEGER› Mode débug
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-swp

iscsi-swp

Utilitaire pour définir-obtenir la protection d'écriture dans un LUN iSCSI

OPTIONS

-i, --initiator-name=‹IQN› Spécifie le nom de l'initiateur que iscsi-ls utilise en se loggant dans la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-ls'
-s, --swp {on|off} Par défaut, affiche seulement le paramètre courant. Permet de définir le flag.
-d, --debug=‹INTEGER› Mode débug
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-test-cu

iscsi-test-cu

Suite de test iSCSI/SCSI

OPTIONS

-i, --initiator-name=‹IQN› Tous les tests utilisent au moins une connection iSCSI sur la cible et le nom de l'initiateur par défaut est 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-test'
-I, --initiator-name-2=‹IQN› Certains tests utilisent une seconde connection à la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-test-2'
-l, --list Liste tous les tests disponibles
-t, --test=‹family›|*[.‹suite›|*[.‹test›|*]] Spécifie la liste de tests à lancer. Sans cette option, tous les tests sont exécutés.
-d, --dataloss Par défaut, les tests sont non-destructeurs. Cette option permet d'exécuter les tests qui modifient les données
-s, --allow-sanitize L'opcode SBC SANITIZE prend en temps significatif avant de se terminer et les tests avec cet opcode ne sont pas prévus pour les tests normaux
-V, --Verbose-scsi Affiche toutes les commandes SCSI qui sont envoyées au périphérique, arguments, et résultat attendus.
-x, --xml Produit un résultat de test au format xml
^
14 novembre 2016

htmlpdflatexmanmd




iscsi_discovery

iscsi_discovery

Découvrir des targets iSCSI

   Effectue des découvertes sendtargets sur l'IP spécifié. Si un record est généré, tente de se logger au portail en utilisant le transport préféré. (défaut: TCP) Si le login réussi, marque le portail pour le login automatique et se déconnecte.

OPTIONS

[-p=]port-number Définis le port. Défaut: 3260
[-d] Mode debug
[-t=]transport-type Définis le type de transport. Défaut: TCP
[-f] Force un transport spécifique
[-m] Démarrage manuel, ne définis pas de démarrage automatique
[-l] Se log sur les nœuds découverts. Défaut: false
^
14 novembre 2016

htmlpdflatexmanmd




iscsistart

iscsistart

Outil de boot iSCSI

   iscsistart démarre une session avec les paramètres qui lui sont passés, ou en utilisant les informations de boot iBFT ou Open Firmware (OF). Ce programme ne devrait pas être utilisé pour gérer les sessions. Il est principalement utilisé pour démarrer les sessions utilisées pour le boot root iSCSI

OPTIONS

[-i|--initiatorname=]name Définis initiatorName
[-t|--targetname=]name Définis TargetName
[-g|--tgpt=]N Définis le target portal group tag
[-a|--address=]A.B.C.D Définis l'adresse IPv4
[-p|--port=]N Définis le port
[-u|--username=]N définis le username
[-w|--password=]N Mot de passe
[-U|-username_in=]N Définis le username entrant
[-W|--password_in=]N Mot de passe entrant
[-d|--debug=]debug_level Mode debug
[-b|--fwparam_connect] Créé une session sur le target en utilisant les infos iBFT ou OF
[-N|--fwparam_network] Définis le réseau tels que spécifié par iBFT ou OF
[-P|--param=]NAME=VALUE Définis le paramètre spécifié. Peut être spécifié plusieurs fois
^
14 novembre 2016

htmlpdflatexmanmd




iscsiadm

iscsiadm

Utilitaire d'administration open-iscsi

Description

   iscsiadm permet de découvrir et se connecter à des targets iSCSI, accéder et gérer la base de donnée open-iscsi. Open-iscsi n'utilise pas le terme de nœud tel que définis dans la RFC iSCSI, où un nœud est un simple initiateur ou target iSCSI. Il utilise le terme de nœud pour référer à un portail dans une target. Pour le mode session, un sid (session id) est utilisé. Il peut être affiché avec iscsiadm -m session -P 1.

OPTIONS

-a, --ip=ipaddr (sous-mode ping). ipv4 ou ipv6
-A, --portal_type=[ipv4|ipv6] (sous-mode flashnode du mode host et seulement avec l'opération new) Spécifie le type de portail pour la nouvelle entrée de nœud flash à créer.
-b, --packetsize=packetsize (sous-mode ping) Taille de paquet ping
-c, --count=count (sous-mode ping) nombre d'itérations ping
-C, --submode=op Spécifie le sous-mode pour mode. op doit être le nom d'un sous-mode
-d, --debug=debug_level Mode debug, de 0 à 8
-H, --host=[hostno|MAC] Spécifie l'hôte SCSI à utiliser pour l'opération. Peut être un numéro d'hôte iscsi assigné à l'hôte par la couche scsi du kernel, ou l'adresse MAC d'un hôte scsi
-i, --interval=interval (sous-mode ping) interval entre les itérations ping
-I, --interface=[iface] Interface iSCSI à utiliser pour l'opération. les interfaces iSCSI sont définies dans /etc/iscsi/ifaces. pour (modes discovery, node et iface) iSCSI hardware (qla4xxx), la configuration iface doit avoir l'adresse hardware (iface.hwaddress = adresse MAC du port) et le driver/transport_name (iface.transport_name). Le nom de l'interface est le nom du fichier de configuration iface. Pour iSCSI logiciel, la configuration doit avoir soit l'adresse hardware (iface.hwaddress) ou le nom de l'interface de la couche réseau (iface.net_ifacename) et doit avoir le driver/transport_name.
-k, --killiscsid=[priority] Actuellement la priorité doit être 0. Celà va immédiatement stopper toutes les opértions iscsid et stopper iscsid. Il ne déconnecte aucune session. Équivalent à killall iscsid.
-D, --discover (mode discovery) Découvre les targets en utilisant la découverte avec le recid correspondant au type de découverte et portail spécifiés. S'il n'y a pas d'enregistrement découvert, il est créé en utilisant les paramètres de découvertes dans iscsid.conf. Doit être passé en mode discoverydb pour instruire iscsiadm d'effectuer la découverte.
-L, --loginall=[all|manual|automatic] (mode node) Login pour toutes les sessions avec le nœud ou les valeurs conn passée à toute session en cours, excepté celles marquées onboot.
-m, --mode op Spécifie le mode. (discovery, discoverydb, node, fw, host iface ou session)
-n, --name=name (mode node) spécifie un nom de champ dans un enregistrement. en sous-mode flashnode du mode host, spécifie le nom d'un paramètre du nœud flash. À utiliser avec l'opérateur update
-o, --op=op Spécifie un opérateur de base de données

        new, delete, update, show, nonpersistent Pour tous les modes excepté fw.
        apply et apllyall mode iface
        login et logout sous-mode flashnode
        delete ne devrait pas être utilisé sur une session en cours. delete supprime un recid spécifié. En mode discovery, si iscsiadm effectue un découverte il supprime les enregistrements pour les portals qui ne sont plus retournés.
        new créé un nouvel enregistrement de bas pour un objet donné. En mode node, recid est le nom target et portal (IP:port). En mode iface, recid est le nom iface. En mode discovery, recid est le type portal et discovery. En mode session, new logs dans une nouvelle session en utilisant le même nœud et informations iface que la session spécifiée
        update Met à jours le recid avec le nom à la valeur spécifiée. En mode discovery, si iscsiadm effectue une découverte, recid, name et value ne sont pas nécesaires. update opère sur les portails retournées par les targets, et met à jours les enregistrements de nœud avec les informations du fichier de configuration et de la ligne de commande.
        show défaut pour les modes node, discovery et iface. Également utiisés s'il n'y a pas de commandes passées dans le mode session et qu'un sid est passé. name et value sont ignorés
        nonpersistent Instruit iscsiadm de ne pas manipuler la base
        apply Les paramètres réseaux prennent effet sur l'iface spécifié
        applyall Les paramètres réseaux prennent effet sur tous les ifaces dont l'adresse MAC ou le numéro d'hôte correspond.
        login se log dans l'entrée de nœud flash spécifié
        logout Se déconnecte de l'entrée de nœud flash spécifié

-p, --portal=ip[:port] (mode discovery ou pour les opérations node) Utilise le portail spécifié. défaut pour port: 3260.
-P, --print=printlevel (mode node) affiche les nœud en arborescence.
-T, --targetname=targetname Utilise la target spécifiée
-r, --sid=sid | sysfsdir Utiliser le sid spécifié, ou utilise le chemin sysfs (ex: /sys/devices/platform/hostH/sessionS/targetH:B:I/H:B:I:L)
-R, --rescan (mode session) si le sid est également passé, rescan la session, sinon rescan toutes les sessions courantes.
-s, --stats Affiche des statistiques de session ou d'hôte.
-S, --show (mode node et session) En affichant les enregistrements, ne cache pas les valeurs masquée, comme le secret CHAP
-t, --type=type Doit être sendtargets (ou st), slp, isns ou fw (non supporté).
-u, --logout (mode node et session) déconnection du record spécifié
-U, --logoutall=[all,manual,automatic] déconnection de toutes les sessions avec le nœud ou les valeurs conn startup passé, ou toutes les sessions en cours, excepté celles marquée onboot.
-v, --value=value Spécifie une valeur à utiliser avec l'opérateur update
-x, --index=index index de l'entité sur laquelle opérer

Types de découverte

SendTargets protocole iSCSI natif qui permet à chaque target iSCSI d'envoyer une liste de targets disponibles à l'initiateur.
SLP Optionnellement, un target iSCSI peut utiliser SLP pour annoncer la disponibilité des targets.
iSNS iSNS enregistre les informations d'enregistrement sur les volumes de stockage dans un grand réseau.
fw De nombreux NIC et systèmes contiennent un mini initiateur iSCSI à utiliser au boot.

Codes de sortie

0 ISCSI_SUCCESS - commande réussie
1 ISCSI_ERR - Code d'erreur générique
2 ISCSI_ERR_SESS_NOT_FOUND - session non trouvée
3 ISCSI_ERR_NOMEM - impossible d'allouer des ressource pour l'opération
4 ISCSI_ERR_TRANS - Problème de connexion
5 ISCSI_ERR_LOGIN - erreur de login
6 ISCSI_ERR_IDBM - Erreur d'accès/gestion DB
7 ISCSI_ERR_INVAL - argument invalide
8 ISCSI_ERR_TRANS_TIMEOUT - timer de connexion expiré
9 ISCSI_ERR_INTERNAL - Erreur internel iscsi/kernel
10 ISCSI_ERR_LOGOUT - erreur de déconnexion
11 ISCSI_ERR_PDU_TIMEOUT - iSCSI PDU timedout
12 ISCSI_ERR_TRANS_NOT_FOUND - module de transport iSCSI non chargé dans le kernel
13 ISCSI_ERR_ACCESS - problème de permission d'accès iscsid ou de la commande iscsiadm
14 ISCSI_ERR_TRANS_CAPS - le module transport ne supporte pas l'opération
15 ISCSI_ERR_SESS_EXISTS - le session est connectée
16 ISCSI_ERR_INVALID_MGMT_REQ - requête IPC MGMT invalide
17 ISCSI_ERR_ISNS_UNAVAILABLE - service iSNS non supporté
18 ISCSI_ERR_ISCSID_COMM_ERR - une lecture/écriture iscsid a échoué
19 ISCSI_ERR_FATAL_LOGIN - erreur de connection iSCSI fatal
20 ISCSI_ERR_ISCSID_NOTCONN - Connection à iscsid impossible
21 ISCSI_ERR_NO_OBJS_FOUND - records/targets/sessions/portals non trouvé
22 ISCSI_ERR_SYSFS_LOOKUP - recherche dans sysfs impossible
23 ISCSI_ERR_HOST_NOT_FOUND - recherche d'hôte impossible
24 ISCSI_ERR_LOGIN_AUTH_FAILED - login failed, problème d'autorisation
25 ISCSI_ERR_ISNS_QUERY - requête iSNS échoué
26 ISCSI_ERR_ISNS_REG_FAILED - enregistrement/désenregistrement iSNS échoué

Exemples

Découvrir les target à une ip donnée
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.10 --discover
login, doit utiliser un enregistrement de node trouvé par la découverte
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login
logout
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout
lister les enregistrements de nœuds
iscsiadm --mode node
Afficher toutes les données pour un enregistrement nœud donné
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260

Fichiers

/etc/iscsi/iscsid.conf Fichier de configuration lu par iscsid et iscsiadm au démarrage
/etc/iscsi/initiatorname.iscsi fichier contenant les initiatorname et initiatoralias iSCSI lu par iscsid et iscsiadm au démarrage
/etc/iscsi/nodes/ Base de configuration persistante Open-iSCSI
/etc/iscsi/send_targets Répertoire contenant les portails
^
14 novembre 2016

htmlpdflatexmanmd




iscsid.conf

iscsid.conf

fichier de configuration pour open-iscsi

Options iscsid

iscsid.startup Spécifie la commande de démarrage de iscsid si vous souhaitez que iscsid démarre quand un outil iscsid doit y accéder, au lieu des scripts d'initialisation.
iscsid.safe_logout (bool) Vérifie les montages actifs dans le périphériques accessibles via une session et refuse de se déconnecter s'il y en a. Défaut: no.

Options NIC/HBA

open-iscsi peut créer une session et la lier à un NIC/HBA. pour la configuration, voir un exemple de fichier de configuration iface

Options de démarrage

node.startup = [automatic|manual] Définis le type de démarrage de session au lancement de iscsid. Défaut: manual
node.leading_login (bool) pour les nœuds 'automatic', à yes tente de se connecter sur chaque iface disponible jusqu'à un succès, puis stop. À no, tente de se connection à toutes les iface simultanément.

Options CHAP

node.session.auth.authmethod = CHAP Active l'authentification CHAP. Défaut: None
node.session.auth.username = username username pour l'authentification CHAP
node.session.auth.password = password Mot de passe pour l'authentification CHAP
discovery.sendtargets.auth.authmethod = CHAP Active l'authentification CHAP pour une session discovery sur un target. Défaut: None
discovery.sendtargets.auth.username = username username CHAP de session discovery pour l'authentification de l'initiateur par les targets.
discovery.sendtargets.auth.password = password mot de passe CHAP de session discovery
discovery.sendtargets.auth.username_in = username_in username CHAP de session discovery pour l'authentification des targets par l'initiateur
discovery.sendtargets.auth.password_in = password_in mot de passe CHAP de session discovery

Options timeouts

node.session.timeo.replacement_timeout Délai en secondes de rétablissement de session après une erreur SCSI. À 0 l'IO échoue immédiatement, ‹ 0, l'IO reste en file d'attente indéfiniment. Défaut: 120
node.conn[0].timeo.login_timeout Délai pour accomplir le login, en seconde. Défaut: 15
node.conn[0].timeo.logout_timeout Délai pour la déconnection complète, en secondes. Défaut: 15
node.conn[0].timeo.noop_out_interval Délai avant d'envoyer un ping une fois connecté, défaut: 5
node.conn[0].timeo.noop_out_timeout Délai pour une réponse Nop-out avant d'échouer. Avec dm-multipath, l'IO échoue sur la couche multipath. Défaut: 5
node.session.err_timeo.abort_timeout Délai d'attente pour une réponse avant d'échouer l'opération et tenter un reset lun. défaut: 15
node.session.err_timeo.lu_reset_timeout Délai d'attente pour une réponse d'unité logique avant l'échouer l'opération et tenter de rétablir la session. Défaut: 30
node.session.err_timeo.tgt_reset_timeout Délait d'attente pour une réponse d'un target avant d'échouer l'opération et tenter de rétablir une session. Défaut: 30

Options retry

node.session.initial_login_retry_max Pour spécifier le nombre de fois que iscsid devrait retenter un login si les tentatives de login échouent à cause de l'expiration node.conn[0].timeo.login_timeout, modifier cette option. Ce compteur, avec node.conn[0].timeo.login_timeout, déterminent le login initial. node.session.initial_login_retry_max est multiplié par node.conn[0].timeo.login_timeout pour en déterminer la quantité. défaut: 8

Options de session et de file de périphériques

node.session.cmds_max Contrôle le nombre de commande mis en file d'attente pour la session. Défaut: 128
node.session.queue_depth Contrôle la profondeur de la file d'attente du périphérique. Défaut: 32

Options de performances système

node.session.xmit_thread_priority Pour iscsi_tcp et ib_iser, chaque session a un thread utilisé pour transmettre ou mettre en file les données vers le hardware. Cette option définis la priorité de thread. Défaut: -20.

Options iSCSI

node.session.iscsi.InitialR2T Active le contrôle de flux R2T (ex: l'initiateur doit attendre une comande R2T avant d'envoyer des données)
node.session.iscsi.InitialR2T Désactive le contrôle de flux R2T (ex: l'initiateur a un R2T initial implicite "FirstBurstLength" à l'offset 0). Défaut: No
node.session.iscsi.ImmediateData Àctive les données immédiates (ex: l'initiateur envoie des données non-solicitée avec les paquets de commande iSCSI). Défaut: Yes
node.session.iscsi.FirstBurstLength Nombre d'octets entre 512 et 2^24-1 des données non-solicitée que l'initiateur peut envoyer dans un PDU iSCSI à un target. Défaut: 262144
node.session.iscsi.MaxBurstLength Payload SCSI max que l'initiateur négocie avec le target, entre 512 et 2^24-1 octets. Défaut: 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength Nombre d'octets entre 512 et 2^24-1 que l'initiateur peut reçevoir dans un PDU iSCSI d'un target. Défaut: 262144
node.conn[0].iscsi.MaxXmitDataSegmentLength Nombre d'octets entre 512 et 2^24-1 que l'initiateur envoie dans un PDU iSCSI à un target. Défaut: 0 ( utilise MaxRecvDataSegmentLength)
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength Spécifie le nombre max d'octets de données que l'initiateur peut reçevoir dans un PDU iSCSI d'un target durant une session de découverte, entre 512 et 2^24-1. Défaut: 32768
node.conn[0].iscsi.HeaderDigest = CRC32C,None Permet aux targets de contrôler la vérification de hash, par ordre de préférence. None en premier indique que l'initiateur préfère ne pas vérifier le hash. Si une seule valeur est spécifié, force ce mode. Défaut: None
node.conn[0].iscsi.DataDigest = CRC32C,None Permet aux targets de contrôler la vérification de hash, par ordre de préférence. Défaut: None

Options de contournement

node.session.iscsi.FastAbort (Bool) Certains target comme IET préfèrent, une fois que l'initiateur a envoyé une fonction de gestion de tâche comme ABORT TASK ou LOGICAL UNIT RESET, ne plus répondre aux PDU comme R2T. Défaut: Yes (permet ce comportement)
^
14 novembre 2016

htmlpdflatexmanmd




iscsid

iscsid

Service Open-iSCSI

   iscsid implément le chemin de contrôle du protocole iSCSI, plus certaines facilités de gestion.

OPTIONS

[-c|--config=]config-file Spécifie le fichier de configuration. Défaut: /etc/iscsi/iscsid.conf
[-i|--initiatorname=]iname-file Lit le nom de l'initiateur depuis iname-file au lieu de /etc/iscsi/initiatorname.iscsi
[-f|--foreground] Ne lance pas en tâche de fond
[-d|--debug=]debug_level Affiche des informations de debuggage, de 0 à 8
[-u|--uid=]uid UID du processus
[-g|--gid=]gid GID du processus
[-n|--no-pid-file] Ne pas écrire de PID dans un fichier
[-p|--pid=]pid-file Écris le PID dans le fichier spécifié. Défaut: /run/iscsid.pid

Fichiers

/etc/iscsi/iscsid.conf Fichier de configuration lu par iscsid et iscsiadm au démarrage
/etc/iscsi/initiatorname.iscsi fichier contenant les initiatorname et initiatoralias iSCSI lu par iscsid et iscsiadm au démarrage
/etc/iscsi/nodes/ Base de configuration persistante Open-iSCSI
^
05 novembre 2016

htmlpdflatexmanmd




swapon

swapon, swapoff

Activer/désactiver les périphérique et fichiers pour le paging et le swapping

   swapon est utilisé pour spécifier les périphériques dans lesquels le paging et le swapping sont placés. swapon est généralement lancé au boot. swapoff désactive des périphériques et fichiers spécifiés. Avec -a, désactive tous les périphériques swap connus (tel que trouvé dans /proc/swaps ou /etc/fstab)

OPTIONS

-a, --all Tous les périphériques marqués en 'swap' dans /etc/fstab disponibles, excepté ceux avec l'option noauto.
-d, --discard[=policy] Active l'abandon de swap, si le périphérique hébergeant le swap le supporte. Cela permet d'améliorer les performances dans certains disques SSD. 2 stratégies sont disponibles: 'once' effectue une opération discard en une seule fois pour tout le swap au swapon, 'pages' discard de manière asynchrone les pages de swaps libérés. Défaut: les 2 types sont activés. les options discard, discard=once, ou discard=pages peuvent être également utilisé dans /etc/fstab.
-e, --ifexists Ignore silencieusement les périphériques qui n'existent pas. l'option nofail dans fstab peut également être utilisé.
-f, --fixpgrz Réinitialise l'espace swap (mkswap) si la taille de page ne correspond pas au kernel courant.
-L label Utilise la partition qui a le label spécifié. (peut nécessiter l'accès à /proc/partitions)
-o, --options opts Spécifie les options swap au format fstab.
-p, --priority priority Spécifie la priorité du périphérique swap, entre -1 et 32767. idem à pri=value dans fstab
-s, --summary Affiche un sommaire d'utilisation du swap par périphérique. Équivalent à cat /proc/swaps. Déprécié en faveur de --show.
--show[=column] Affiche un table personnalisable des zones de swap.
--noheadings N'affiche pas d'en-tête dans la sortie de --show
--raw Affiche --show sans aligner les colonnes
--bytes Affiche la taille swap en octets dans --show
-U uuid Utilise la partition qui a l'uuid spécifié
-v, --verbose mode verbeux

Variables d'environnement

LIBMOUNT_DEBUG =all Activer la sortie de débogage de libmount.
LIBBLKID_DEBUG =all Activer la sortie de débogage de libblkid

Exemples

Créer un fichier d'1Gio:
dd if=/dev/zero of=/mnt/SWAP bs=1024 count=1048576
Initialiser le fichier
mkswap /mnt/SWAP
définis les permissions et propriétaires
chmod 0600 /mnt/SWAP
chown root:root /mnt/SWAP
Activer le swap avec une priorité de 5000
swapon -p 5000 /mnt/SWAP
^
05 novembre 2016

htmlpdflatexmanmd




mkswap

mkswap

Initialise une zone swap

OPTIONS

-c, --check Vérifie le périphérique à la recherche de blocks défectueux. Affiche le compteur de blocks défectueux
-f, --force Force l'opération. Permet de créer une zone swap plus grande que le fichier ou la partition. Sans cette option, mkswap refuse d'écraser le premier block dans une périphérique avec une table de partition.
-L, --label label spécifie un label pour le périphérique.
-p, --pagesize size Spécifie la taille de page en octets.
-U, --uuid UUID Spécifie l'UUID à utiliser
-v, --swapversion 1 Spécifie la version. Obsolète vu que -v 0 n'est plus supportée.

Notes

- La taille utile maximum dépend de l'architecture et de la version du kernel
- Le nombre maximum de page qu'il est possible d'adresser par l'en-tête swap est 4294967295. Le reste est ignoré
- Linux supporte jusqu'à 32 zones de swap.
- mkswap refuse les zone inférieur à 10 pages

Variables d'environnement

LIBBLKID_DEBUG =all Activer la sortie de débogage de libblkid
^
04 novembre 2016

htmlpdflatexmanmd




dumpe2fs

dumpe2fs

Dump les informations de système de fichier ext2/3/4

OPTIONS

-b Affiche les blocks réservés comme défectueux dans le système de fichier.
-o superblock=superblock Utilise le superblock spécifié pour examiner le système de fichier.
-o blocksize=blocksize Spécifie la taille de block à utiliser pour examiner le système de fichier.
-f Force à afficher même si certains flags de système de fichier ne sont pas compris par dumpe2fs.
-g Affiche les informations de descripteur de groupe au format human-readable. Les champs affichés sont le numéro de groupe, le numéro du premier block dans le groupe; l'emplacement du superblock ou -1 si non présent, la plage de blocks utilisés par les descripteurs de groupe ou -1 si non présent; l'emplacement du bitmap de block, l'emplacement du bitmap d'inode, et la plage de blocks utilisés par la table d'inode
-h Affiche seulement les informations du superblock.
-i Affiche les données du système de fichier depuis un fichier image créé par e2image.
-x Affiche les numéros de block d'informations de groupe détaillés, en hexa
^
04 novembre 2016

htmlpdflatexmanmd




debugfs

debugfs

Debugger de système de fichier ext2/3/4

   debugfs est un debugger interactif de système de fichier. Il peut être utilisé pour examiner et changer l'état d'un système de fichier ext2/3/4.

OPTIONS

-w Spécifie que le système de fichier devrait être ouvert en mode lecture écriture.
-n  Désactive la vérification de checksum de métadonnées.
-c Spécifie que le système de fichier devrait être ouvert en mode catastrophique, dans lequel les bitmaps d'inode et de groupe ne sont pas lus initialement. Force l'ouverture en lecture-seule.
-i Spécifie que le périphérpique représente un fichier image ext2 créé par e2image. Vu qu'un fichier image ext2 ne contient que le superblock, descripteur de groupe de blocks, bitmaps d'allocation d'inode et de block, et la table d'inode, de nombreuses commandes ne fonctionneront pas correctement.
-d data_source_device avec -i, spécifie que data_source_device devrait être utilisé en lisant les blocks non trouvés dans le fichier image ext2.
-b blocksize Spécifie la taille de block en octet pour le système de fichier.
-s superblock Force la lecture du superblock au numéro de block spécifié au lieu d'utiliser le primaire localisé à un offset de 1024 octets.
-f cmd_file Lit les commande depuis ce fichier et les exécute, puis se termine.
-D Ouvre le périphérique en Direct I/O et bypasse le cache.
-R request Exécute la commande spécifiée, puis quitte
-z undo_file Avant d'écraser un block, l'écris dans le fichier undo spécifié.

Spécifier des fichiers

   De nombreuses commandes prennent un argument filespec pour spécifier un inode dans le système de fichier. Cet argument peut être de 2 formes, un numéro d'inode entre '‹›', ou un chemin de fichier.

Commandes

blocks filespace Affiche les blocks utilisés par l'inode filespec
bmap [ -a ] filespec logical_block [physical_block] Afiche ou définis le numéro de bock physique correspondant an numéro do block logique logical_block dans l'inode filespec. Si -a est spécifié, tente d'allouer un block si nécessaire.
cat filespec Dump le contenu de l'inode filespec sur stdout
cd filespec Change le répertoire de travail courant
chroot filespec Change le répertoire root
close [-a] Ferme de système de fichier ouvert. Si -a est spécifié, écris les changement dans le superblock et les descripteurs de groupe de block dans toutes les sauvegardes du superblock, pas seulement le principal.
clri filespec Efface le contenu de l'inode filespec
copy_inode source_inode destination_inode Copie le contenu de la structure inode dans source_inode et l'utilise pour écraser la structure inode dans destination_inode
dirsearch filespec filename Recherche dans le répertoire filespec le filename
dirty Marque le système de fichier dirty, pour que le superblock soit écris en quittant
dump_mmp [mmp_block] Affiche les valeurs de protection mmp. Si mmp_block est spécifié, vérifie et dump les valeurs MMP pour le numéro de block donné, sinon utilise le champ s_mmp_block dans le superblock pour localiser et utiliser le block MMP existant.
dx_hash [-h hash_alg] [-s hash_seed] filename Calcule le hash de répentoire de filename. L'algorithme de hashage spécifié avec -h peut être legacy, half_md4 ou tea.
dump_extents [-n] [-l] filespec Dump l'extent tree de l'inode filespec. -n affiche seulement les nœuds interieurs dans l'extent tree.
ea_get [-f outfile] filespec attr_name Récupère la valeur de l'attribut étendu attr_name dans le fichier filespec et l'écris soit sur stdout ou outfile.
ea_list filespec Liste les attributs étendus associés avec le fichier filespec sur stdout
ea_set [-f infile] filespec attr_name attr_value Définis la valeur de l'attribut étendu attr_name dans le fichier filespec à la valeur attr_value ou le lit depuis stdin
ea_rm filespec attr_names... Supprime l'attribut étendu attr_name du fichier filespec
expand_dir filespec Étend le répertoire filespec
fallocate filespec start_block [end_block] Alloue et map les blocks non initialisés dans filespec entre le block logique start_block et end_block. Si end_block n'est pas spécifié, cette fonction map tous les blocks disques libres ou la taille de fichier maximum. Les mappages existant sont laissés seuls.
feature [fs_feature] [-fs_feature] ... Définis ou efface divers fonctionnalités dans le superblock, puis affiche l'état courant des fonctionnalités.
filefrag [-dvr] filespec Affiche le nombre d'extents contigus dans filespec. Si filespec est un répertoire et -d n'est pas spécifié, filefrag affiche le nombre d'extent contigus pour chaque fichier dans le répertoire. -v affiche un listing avec tabulations, -r effectue un listing récursif.
find_free_block [count [goal]] Trouver les count premier blocks libre, en commençant à goal et l'alloue. = ffb
find_free_inode [dir [mode]] Trouver un inode libre et l'allouer. Si présent, dir spécifie le numéro d'inode du répertoire auquel il est alloué. mode spécifie les permissions du nouvel inode. == ffi
freeb block [count] Marque le numéro de block comme non alloué. Si count est présent, count blocks commençant au numéro de block seront marqués non alloués
freefrag [-c chunk_kb] Affiche la fragmentation d'espace lible dans le système de fichier. avec -c, la commande filefrag affiche le nombre de chunks libre de taille chunk_kb trouvés dans le système de fichier.
freei filespec [num] Libère l'inode filespec. Si num est spécifié, efface également l'inode num-1 après l'inode spécifié
htree_dump filespec Dump le répertoire hash-indexed filespec, affichant sa structure d'arborescence
icheck block ... Affiche un listing des inodes qui utilisent un ou plusieurs blocks spécifiés sur la ligne de commande.
inode_dump filespec Affiche le contenu de la structure de données d'inode en hexa et ASCII
imap filespec Affiche l'emplacement de la structure de données d'inode (dans la table d'inode) de l'inode filespec
init_filesys device blocksize Créé un système de fichier ext2 dans le périphérique avec la taille blocksize. Noter que cela n'initialise pas toutes les structures de données.
journal_close Ferme un journal ouvert
journal_open [-c] [-v ver] [-j ext_jnl] Ouvre le journal pour lecture et écriture. -c active le checksum journal; -v spécifie le format de checksum (2 ou 3).
journal_run Rejoue toutes les transactions dans le journal ouvert
journal_write [-b blocks] [-r revoke] [-c] file Écris une transaction dans le journal ouvert. La liste des blocks à écrire devrait être fournis dans blocks; les blocks eux-même devraient être lisible depuis file. Une liste de blocks à révoquer peut être fournie dans revoke. Par défaut, un commit est écris à la fin; -c écrit une transaction uncommited.
kill_file filespec Désalloue l'inode filespec et ses blocks. Noter que cela ne supprime pas d'entrées répertoire dans cet inode.
lcd directory Change le répertoire de travail courant
ln filespec dest_file créer un lien nomé dest_file qui est un lien dure vers filespec. Noter que cela n'ajuste pas le compteur de référence d'inode
logdump [-acsO] [-b block] [-i filespec] [-f journal_file] [output_file] Dump le contenu du journal ext3. Par défaut, dump l'inode journal comme spécifié dans le superblock. -i dump le journal depuis l'inode interne donné par filespec. -f spécifie un fichier régulier contenant les données journal. -s utilise les informations de sauvegarde dans le superblock pour localiser le journal. -a affiche le contenu te tous les blocks descripteur, -b affiche tous les enregistrement journaux référés dans le block spécifié, -c affiche le contenu de toutes les données des blocks de données sélectionnés pas -a et -b. -O affiche les anciennes entrées du journal.
ls [-l] [-c] [-d] [-p] [-r] filespec Affiche un listing des fichiers dans le répertoire filespec. le flag -c force les checksum de block répertoire à être affichés. -d liste les entrées supprimées. -l est plus verbeux. -p liste les fichier dans un format plus simple pour les scripts. -r force l'affichage du nom de fichier même s'il est chiffré.
list_deleted_inodes [limit] Liste les inodes supprimés, optionnellement limité à ceux supprimés il y a limite secondes. = lsdel
modify_inode filespec Modifie le contenu de la structure d'inode filespec. = mi
mkdir filespec Créer un répertoire
mknod filespec [p|[[c|b] major minor]] Créer un fichier spécial.
ncheck [-c] inode_num ... Prend la liste demandée de numéro d'inode, et affiche un listing de chemin vers ces inodes. -c vérifie le type de fichier dans l'entrée répertoire pour s'assurer qu'il match le type d'inode.
open [-weficD] [-b blocksize] [-s superblock] [-z undo_file] device Ouvre un système de fichier pour l'édition. -f force l'ouverture même s'il a des fonctionnalité incompatibles, -e ouvre le fs en mode exclusif, les autres options ont les même signification que les options de debugfs.
punch filespec start_blk [end_blk] Supprime les blocks dans l'inode entre start_blk et end_blk. Si end_blk est omis, cette commande fonctionne comme une commande tronquer, c'est à diste que tous les blocks depuis start_blk jusqu'à la fin du fichier seront désalloués
symlink filespec target Créer un lien symbolique
pwd Afficher le répertoire de travail courant
quit Quitter debugfs
rdump directory[...] destination Dump récursivement le ou les répertoires, et tous leur contenu dans la destination spécifiée
rm pathname unlink pathname
rmdir Supprime le répertoire filespec
setb block [count] Marque le numéro de block spécifié comme alloué. si count est spécifié, count blocks sont marqués alloués
set_block_group bgnum field value Modifie le descripteur de groupe de block bgnum pour que le champ field du descripteur de groupe de block ait la valeur value.
seti filespec [num] Marque l'inode utilisé dans le bitmap d'inode. Si num est spécifié, met num-1 inodes après l'inode spécifié.
set_inode_field filespec field value Modifie l'inode spécifié par filespec pour que le champ field ait la valeur value. La liste de champs d'inode valide peut être obtenu avec set_inode_field -l. = sif
set_mmp_value field value Modifie les données MMP. La liste des champs modifiables peut être obtenu avec set_mmp_value -l. = smmp
set_super_value field value Définis un champ du superblock. set_super_value -l pour lister les champs modifiables. = ssv
show_super_stats [-h] Liste le contenu du superblock et des descripteurs de groupe de block. -h n'affiche que le contenu du superblock. = stats
stat filespec Affiche le contenu de la structure d'inode de l'inode filespec
testb block [count] Test si le numéro de block est marqué comme alloué dans le bitmap de block.
testi filespec Test si l'inode est marqué comme alloué dans le bitmap d'inode
undel ‹inode_number› [pathname] Récupère le numéro d'inode spécifié.
unlink pathname Supprime le lien spécifié. N'ajuste pas le compteur de référence d'inode
write source_file out_file Copie le contenu du fichier source_file dans un nouveau fichier créé
zap_block [-f filespec] [-o offset] [-l length] [-p pattern] block_num Écrase le block spécifié par block_num avec des 0. -p utilise l'octet spécifié, -f block_num est relatif au début du fichier. -o et -l limitent la plage d'octets à écraser.
zap_block [-f filespec] [-b bit] block_num change les portions du block_num physique. -f, block_num est un block logique relatif au début de filespec

Variables d'environnement

DEBUGFS_PAGER debugfs pipe toujours la sortie de certaines commande dans un pager.
PAGER Pager à utiliser
^
04 novembre 2016

htmlpdflatexmanmd




e2fsck.conf

e2fsck.conf

Fichier de configuration pour e2fsck

e2fsck.conf utilise le format INI:
[section1]
    tag1 = value_a
    tag1 = value_b
    tag2 = value_c
    
[section 2]
    tag3 = {
        subtag1 = subtag_value_a
        subtag1 = subtag_value_b
        subtag2 = subtag_value_c
    }
    tag1 = value_d
    tag2 = value_e
}

[options] Contient les paramètres de configuration générales pour e2fsck
[problems] Permet de reconfigurer la gestion des inconsistance du système de fichier
[scratch_files] Contrôle l'utilisation de fichiers scratch pour réduire la mémoire nécessaire.

[options]

allow_cancellation (bool) autorise l'annulation par l'utilisateur avec ^C, et si le système de fichier ne contient pas d'erreus, e2fsck quitte avec le code 0 au lieu de 32. Défaut: false
accept_time_fudge (bool) Permet de truquer le temps du superblock de 24 heures pour palier au problème de Windows utilisant l'heure locale au lieu du temps UTC.
broken_system_clock (bool) e2fsck assume que l'horloge système est correct. De plus, de nombreux programmes système font de même. À true, permet d'éviter les vérifications basées sur le temps.
buggy_init_scripts (bool) contrôle si e2fsck efface le flage test_fs si ext4 est disponible. Défaut: true
defer_check_on_battery (boo) Contrôle si l'interval entre les vérification de système de fichier (soit basé sur le temps ou le nombre de montage) doivent être doublés si le système fonctionne sur batterie. Défaut: true.
indexed_dir_slack_percentage Quand e2fsck repack un répentoire indexé, il réserve un pourcentage d'espace vide dans chaque leaf node pour que de nouvelles entrées puissent être ajoutées sans splitter le leaf node. Défaut: 20%
log_dir Si log_filename contient un chemin relatif, le fichier de log sera placé dans ce répertoire nommé par log_dir
log_dir_fallback Contient un répertoire alternatif à utiliser si log_dir n'est pas disponible ou non écrivable
log_dir_wait (boot) à true, si log_dir ou log_dir_fallback ne sont pas disponibles ou non écrivable, e2fsck sauve la sortie en mémoire, et un processus enfant test périodiquement pour voir si le répertoire le log devient disponible après la séquence de boot
log_filename Spécifie le nom de fichier où copier la sortie de e2fsck
max_count_problems nombre maximum de problème d'un type particulier reporté sur stdout.
readahead_mem_pct % de mémoire à tenter de lire dans les blocks de métadonnées avant le principal thread e2fsck. devrait réduire de temps de traitement.
readahead_kb Quantité de mémoire à lire dans les blocks de métadonnées en avance. 0 désactive le readhead. Généralement 4Mio
report_features (bool) à true, e2fsck affiche les fonctionnalité du système de fichier dans son reporting verbeux
report_time (bool) à true, e2fsck se lance comme avec -tt
report_verbose (boo) à true, e2fsck se lance comme avec -v

[problems]

   Chaque tag dans cette section nomme un code problème spécifié avec '0x'. La valeur du tag est une sous-section où les paramètres remplacent le traitement par défaut. Noter que des paramètres inappropriés peuvent empêcher e2fsck de fonctionner correctement. Dans chaque sous-section, les tags suivants peuvent être utilisés

description Description à afficher
preen_ok (bool) contrôle si ce problème devrait être fixé automatiquement en mode preen (-p).
max_count remplace max_count_problems pour ce problème
no_ok (bool) spécifie si le système de fichier sera marqué comme inconsistant si l'utilisateur refuse de fixer le problème.
no_default (bool) indique que la réponse par défaut pour ce problème devrait être 'no'.
preen_nomessage (bool) contrôle si la description pour ce problème devrait être supprimé quand e2fsck est lancé en mode preen (-p).
no_nomsg (bool) contrôle si la description pour ce problème devrait être supprimé quand un problème est forcé à ne pas être fixé soit à cause de l'option -n ou parce que force_no est mis.
force_no (bool) à true, ne fixe jamais un problème. Écrase l'option -y.

[scratch_files]

directory Si le répertoire nommé par cette relation existe et est accessible en écriture, e2fsck tente d'utiliser ce répertoire pour stocker les fichiers scratch au lieu d'utiliser les structures en mémoire
numdirs_threshold Définis, les structures de donnée en mémoire sont utilisées si le nombre de répertoire dans le système de fichier est inférieur à ce nombre.
dirinfo (bool) Contrôle si le répertoire de fichiers schatch est utilisé au lieu des structures de données en mémoire pour les informations de répertoire. Défaut: true
icount (bool) Contrôle si le répertoire de fichiers scratch est utilisé au lieu des structures de données en mémoire en traquant les compteurs d'inode. Défaut: true

Logging

   e2fsck a des facilités pour sauver les informations dans un répertoire pour que l'administrateur puisse visualiser sa sortie. Cela permet de capturer des informations un preen, ou de garder une trace des opérations. Cette facilité est contrôlée par log_filename, log_dir, log_dir_fallback et log_dir_wait. Le fichier dans log_filename peut contenir les expressions suivantes qui sont étendues:

%d Jour du mois
%D date courante (%Y%m%d)
%h Nom d'hôte
%H heure (00..23)
%N Nom du périphérique block contenant le système de fichier, sans le chemin.
%p pid du processus e2fsck
%s Heure en seconde depuis epoch
%S secondes (00..59)
%T Heure courante (%H%M%S)
%u Nom de l'utilisateur qui a lancé e2fsck
%U n'étend rien, mais signal que les expressions de date et heure qui suivent devraient être exprimées en UTC.
%y Année (00.99)
%Y Année sur 4 chiffre.

Exemples

Cet exemple empêche e2fsck d'annuler durant le processus de boot quand un système de fichier contient des fichiers orphelins. Cela n'est pas toujours une bonne idée, vu que les fichiers critiques qui sont nécessaire pour la sécurité du système pourraient potentiellement finir dans lost+found, et démarrer le système sans avoir de vérification administrateur peut être dangereux.
[problems]
    0x040002 = {
        preen_ok = true
        description = "@u @i %i. "
    }

L'exemple suivant force e2fsck à logger dans le répertoire /var/log/e2fsck, avec un nom de fichier qui contient le nom du périphérique, nom d'hôte, date et heure. (ex: e2fsck-sda3.server.INFO.20120314-112142). Si le répertoire contenant /var/log est localisé dans le système de fichier racine qui est initialement monté en lecture seule, la sortie est conservée en mémoire et écris une fois le système de fichier remonté en rw. Pour éviter trop de détails à écrire dans la console série (ce qui peut ralentir la séquence de boot), seulement 16 instances de chaque type de problèmes sont affichés.
[options]
    max_count_problems = 16
    log_dir = /var/log/e2fsck
    log_filename = e2fsck-%N.%h.INFO.%D-%T
    log_dir_wait = true

Notes

   Les codes problème peuvent être trouvés dans 'e2fsck/problem.h'. Utiliser 'egrep -B1 -ri "0x[0-9]{5}" e2fsck/problem.h"'
^
03 novembre 2016

htmlpdflatexmanmd




e2fsck

e2fsck

Vérifier un système de fichier linux

   e2fsck est utilisé pour vérifier les systèmes de fichier. Pour ext3/4 qui utilise un journal, si le système a été éteind non proprement sans erreurs, normalement, après avoir rejoué les transactions dans le journal, le système de fichier devrait être marqué correct. Pour pour les systèmes de fichiers journalisés, e2fsck rejoue normalement le journal et quitte, sauf si le superblock indique que d'autres vérifications sont nécessaire.

   Noter qu'en général il n'est pas sûr de lancer e2fsck sur des systèmes de fichier monté. La seule exception est si l'option -n est spécifiée, et -c, -l ou -L ne sont pas spécifiés. Cependant, même s'il est sûre de le faire, le résultat affiché n'est pas valide si le système de fichier est monté. Si e2fsck demande si le système de fichier monté doit être vérifié, la seule réponse correcte est 'no'.

   Si e2fsck est lancé intéractivement (-y, -n ou -p), le programme demande à l'utilisateur de fixer chaque problème rencontré. 'y' fixe l'erreur, 'n' laisse l'erreur, et 'a' fixe le problème et tous les autres. 'Entrée' utilise la réponse par défaut, qui est affiché à la fin de la question.

OPTIONS

-a idem à -p.
-b superblock Au lieu d'utiliser le superblock normal, utilise un superblock alternatif.
-B blocksize Force à localiser le superblock à une taille de block définis, au lieu de le deviner.
-c Force à utiliser badblocks(8) pour faire un scan read-only dans le périphérique pour trouver les blocks défectueux. Si de tels blocks sont trouvé, ils sont ajoutés à l'inode de block défectueux. Spécifié 2 fois, le scan utilise en test rw non-destructeur.
-C fs Écris les informations sur les opérations dans le descripteur de fichier spécifié pour que la progression puisse être supervisée. Généralement utilisé par les programmes qui lance e2fsck.
-d mode debug
-D Optimise les répertoires dans le système de fichier, soit en les ré-indexant soit en triant et compressant les répertoires pour les petits répertoires, ou pour les systèmes de fichier utilisant des répertoires linéaires traditionnels.
-E extended_options Définis les options étendues. Les options suivantes sont supportées:

        ea_ver=extended_attribute_version Définis la version de blocks d'attributs étendus requis par e2fsck durant la vérification. (1 ou 2). Défaut: 2
        journal_only Ne fait que rejouer le journal si requis, mais n'effectue pas d'autres vérifications ou réparations.
        fragcheck Durant la passe 1, affiche un rapport détaillé des blocks non-contigus pour les fichiers dans le système de fichier
        discard Tente de supprimer les blocks libre et les blocks d'inode non utilisés après une vérification complète (utile pour les SSD et stockage sparses/thin-provisionned). Noter que cela ne se produit qu'à la passe 5 après vérification complète, et seulement si ne contient pas d'erreurs non récupérables
        nodiscard L'opposé de l'option discard
        readhahead_kb Utilise autant de Kio de mémoire pour précharger les métadonnée dans l'espoir de réduire l'exécution de e2fsck. Par défaut c'est la taille de 2 tables d'inodes de groupe de block (généralement 4mio)
        bmap2extent Convertis les fichiers à block-mapped en fichier extent-mapped
        fixes_only Fixe seulement les métadonnées endommagées; n'optimise pas les répertoires htree ni ne compresse les arborescence d'extent. Incompatible avec -D et -E bmap2extent.

-f Force la vérification même si le système de fichier semble correct
-F Vide les caches du périphérique avant de commencer.
-j external-journal Définis le journal externe pour ce système de fichier
-k Combiné avec -c, tout block défectueux dans la liste de blocks défectueux sont préservés, et les blocks trouvés par badblocks sont ajoutés à la liste.
-l filename Ajoute les numéros de block listés dans le fichier spécifié à la liste des blocks défectueux. Le format est le même que celui généré par badblocks.
-L filename Définis la liste des blocks défectueux comme étant la liste spécifié dans le fichier. Identique à -l excepté que la liste courante est effacée avant.
-n  Ouvre le système de fichier en lecture-seule, et assume 'no' à toutes les questions. Ne peut pas être spécifié avec -p ou -y
-P Répare automatiquement le système de fichier, sans intervention humaire. Si e2fsck découvre un problème qui nécessite l'administrateur, affiche une description du problème et quitte avec le code 4
-t Affiche des statistiques de temps. Peut être spécifié 2 fois.
-v mode verbeux
-y Assume 'yes' à toutes les questions
-z undo_file Avant d'écraser un block, écris son contenu dans le fichier d'undo.

Codes de sortie

0 Pas d'erreurs
1 Erreurs corrigées
2 Erreurs corrigées, le système devrait être redémarré
4 Des erreurs restent à corriger
8 Erreur opérationnel
16 Erreur d'utilisation ou de syntaxe
21 e2fsck a été annulé par l'utilisateur
128 Erreur de librairie partagée

Signaux

SIGUSR1 Force à démarrer en affichant une barre de progression ou en émettant des informations de progression.
SIGUSR2 Force à stopper l'affichage de progression
^
03 novembre 2016

htmlpdflatexmanmd




fsck.fat

fsck.fat

Vérifier et réparer un systèmes de fichier MS-DOS

   fsck.fat vérifie la consistance des systèmes de fichier MS-DOS et optionellement tente de le réparer. Les problèmes suivants peuvent être corrigés (dans l'ordre):

- FAT contient un nombre de clusters invalides. Cluster est changé à EOF
- La chaîne cluster de fichier contient une boucle. La boucle est cassée
- Bad clusters (erreurs de lecture). Les clusters sont marqués comme mauvais et sont supprimés des fichiers qui les possède.
- Les répertoires avec un grand nombre d'entrées en erreur (probablement corrompu). Le répertoire peut être supprimé
- Les fichiers . et .. dans le répertoire root. Ils sont supprimés
- Les maivais noms de ichier. Il peuvent être supprimés ou renommés
- Les répertoires avec un champ de taille non-zero. La taille est mis à 0
- Le répertoire . ne pointe pas sur le répertoire parent. Le pointeur de départ est ajusté
- Le répertoire .. ne pointe pas vers le parent du parent. Le pointeur de départ est ajusté
- Le numéro du cluster de départ d'un fichier est invalide. Le fichier est tronqué
- Le fichier contient de mauvais clusters ou vides. Le fichier est tronqué
- La chaine de cluster du fichier est supérieur que la taille indiquée. Le fichier est tronqué
- 2 ou plusieurs fichiers partagent les même clusters. Tous sauf un sont tronqués. Si le fichier tronqué est un répertoire qui a déjà été lu, la vérification recommence après l'avoir tronqué
- La chaine de cluster du fichier est plus courte que la taille du fichier. Ils sont libérés
Additionnellement, les problèmes suivant sont détectés, mais non réparés:
- Paramètres invalides dans le secteur de boot
- Absence des entrées . et .. dans les répertoires

   Quand fsck.fat vérifie un système de fichier il accumule tous les changements en mémoire et les applique seulement après que toutes les vérifications soient finies. Cela peut être désactivé avec l'option -w.

OPTIONS

-a Répare automatiquement le système de fichier. Aucune intervention n'est nécessaire. Quand plusieurs méthodes permettent de résoudre un problème, l'approche la moins destructrice est utilisée.
-A Utilise la variant Atari de MS-DOS.
-b Fait une vérification du secteur de boot en lecture seule
-c PAGE Utilise le codepage DOS spécifié pour décoder les noms de fichiers court. Défaut: 437
-e PATH Supprime le fichier spécifié. Si plus d'un fichier avec ce nom existe, le premier est supprimé. Peut être spécifié plusieurs fois.
-f Récupère les chaîne de cluster non utilisés aux fichiers. Par défaut, ils sont ajoutés dans l'espace libre excepté en mode auto (-a)
-l Liste les chemin des fichiers à traiter
-n  Mode sans opération, n'écris rien du tout dans le système de fichier
-p Idem à -a, pour compatibilité avec d'autres fsck
-r Répare interactivement.
-t Marque les cluster illisible comme mauvais
-u PATH Tente de récupérer un fichier supprimé. Il tente d'allouer une chaîne de clusters contigus non alloués commençant avec le cluster de départ du fichier supprimé. Peut être spécifié plusieurs fois.
-v mode verbeux
-V Effectue une passe de vérification. La vérification est répétée après la première passe. Le seconde passe n'affiche jamais les erreurs réparables.
-w Écris les changements immédiatement sur le disque
-y Idem -a pour compatibilité avec d'autres fsck

Codes de sortie

0 Aucune erreur non récupérable n'a été détecté
1 Des erreurs irrécupérable ont été détectés ou fsck.fat a découvert une inconsistance interne
2 Erreur d'utilisation. fsck.fat n'a pas accédé au système de fichier

Fichier

fsck0000.rec, fsck0001.rec, ... En récupérant depuis un système de fichier corrompu, fsck.fat dump les données récupérée dans des fichiers nommés fsckNNNN.rec dans le répertoire racine du système de fichier.
^
03 novembre 2016

htmlpdflatexmanmd




fatlabel

fatlabel

Afficher ou définis le label des systèmes de fichier MS-DOS

   Si le label est omis, affiche le label courant. Le label ne peut pas dépasser 11 octets.

^
03 novembre 2016

htmlpdflatexmanmd




gdisk

gdisk

manipulateur de table de partition GUID interactive

   GPT fdisk est un programme pour la création et la manipulation de tables de partition. Il convertit automatiquement une table de partition MBR ou BSD en table partition GPT, ou charge une table GUID. Utilisé avec l'option -l, le programme affiche la table courante et quitte.

   gdisk opère principalement sur les en-tête GPT et les tables de partition; cependant, il peut générer un MBR de protection si requis. (Tout code de boot n'est pas perturbé). Dans ce cas, un MBR hybride créé par gptsync ou gdisk, Cela ne perturbe pas la plupart des actions ordinaires. Certaines options de récupération avancées nécessite de comprendre les distinctions entre les données principales et les sauvegardes, ainsi que les différences entre les en-têtes GPT et les tables de partition.

   Le programme gdisk emploie une interface utilisateur similaire à fdisk, mais gdisk modifie les partitions GPT. Il a également la capacité de transformer les partitions MBR et BSD en partitions GPT. Comme fdisk, gdisk ne modifie pas les structures de disque jusqu'à écrire explicitement.

   Généralement, gdisk opère sur les fichiers de périphérique disque, tel que /dev/sda ou /dev/hda. Le programme peut également opérer sur les fichiers d'image disque, qui peut être soit des copies de disque entier ou des images disques brutes utilisés par les émultateurs tels que QEMU.S Noter que seul les images raw sont pris en charge.

   Le système de partitionnement MBR utilise une combinaison d'adressage CHS et LBA. GPT supprime l'adressage CHS et utilise le mode LBA 64-bits exclusivement. Donc, les structures de données GPT, et gdisk, n'ont pas besoin de gérer les géométries CHS et tous les problèmes qu'ils crééent. Les utilisateurs de fdisk noterons que gdisk n'a pas d'options ni les limitations associées avec les géométries CHS.

   Au démarrage, gdisk tente d'identifier le type de partition utilisé sur le disque. S'il trouve une donnée GPT valide, gdisk l'utilise. S'il trouve un MBR valide ou un disklabel BSD sans donnée GPT, il tente de convertir le MBR en GPT. La conversion laisse au moins un gap dans la numérotation de partition si le MBR original utilisait des partitions logiques. Ces gap sont sans conséquence mais peuvent être éliminés avec l'option 's'. En créant une nouvelle table de partition, certaines considérations peuvent être dans l'ordre:

- Pour les disques de données, et pour les disques de boot utilisé dans les machines à base de BIOS avec GRUB, les partitions peuvent être créées dans n'importe quel ordre et de n'importe quelle taille.
- Les disques de boot pour les systèmes UEFI nécessitent un partition système EFI (0xEF00) formattée en FAT-32. La taille recommandée de cette partition est entre 100 et 300 Mio.
- Si Windows boot depuis un disque GPT, une partition de type Microsoft Reserved (0x0C01) est recommandé. Cette partition devrait faire environ 128Mio. IL suit ordinairement la partition EFI et précéder immédiatement les partitions de données de Windows.
- Certains utilitaires GPT créent un espace blanc (généralement le 128Mio) après chaque partition. Le but est de permettre aux futures utilitaires de disque d'utiliser cet espace. Un tel espace n'est pas un pré-requis des disques GPT, mais les créer peut aider de futures maintenance de disque. Il est possible d'utiliser l'option de positionnement de partition active de fdisk (en spécifiant le secteur de démarrage avec +128M) pour simplifier la création de ce gap.

OPTIONS

-l Liste la table de partition pour le périphérique spécifié et quitte

Options du menu principal

b Sauver les données de partition dans un fichier backup. Permet de sauvegarder la table de partition courante en mémoire dans un fichier disque. Le fichier résultant est un fichier binaire consistant du MBR, l'en-tête GPT principale, l'en-tête GPT de sauvegarde et une copie de la table de partition, dans cet ordre. Noter que la sauvegarde est faite des structures de données courantes en mémoire.
c Change le nom GPT d'une partition
d Supprime une partition.
i Affiche des informations détaillées
l Affiche un sommaire des types de partition.
n Créé une nouvelle partition
o Efface toutes les données de partition.
p Affiche un sommaire basique de partitions
q Quitte le programme
r Entrer dans le menu de récupération et de transformation
s Trie les entrées de partition
t Change de code de type d'une partition
v Vérifie le disque.
w Écrit les changement sur le disque
x Entre dans le menu expert

Options du menu récupération et transformation

b Reconstruit l'en-tête GPT depuis une sauvegarde.
c Charge une sauvegarde de table de partition.
d Utilise l'en-tête GPT principal et reconstruit le backup, utile si l'en-tête GPT sauvegardé a été endommagé ou détruit
e Charge la table de partition principale. Cette option recharge la table de partition principale depuis le disque
f Charge le MBR et lui construit un GPT. Utile si le GPT est corrompu ou en conflit avec le MBR.
g Convertit GPT en MBR et quitte. Détruit les structures de données GPT
h Créé un MBR hybride.
i Affiche des informations de partition détaillées
l Charge les données de partition depuis un fichier sauvegarde.
m Retourne dans le menu principal
o Affiche les données MBR protectives
p Affiche la tables de partitions
q Quitte dans sauvegarder
t Transforme des partitions BSD en GPT
v Vérifie le disque
w Écris les données sur disque
x Entre dans le menu expert

Options du menu expert

a Définis des attributs. GPT fournis des champs d'attribut 64bits qui peuvent être utilisé pour définir des fonctionnalités pour chaque partition. gdisk supporte 'system partition', 'read-only', 'hidden'.
c Change le GUID d'une partition
d Affiche la valeur d'alignement de secteur
e Déplace les structures de données GPT à la fin du disque. Utile si vous avez ajouté des disques à un raid.
f Rend aléatoire le GUID de disque et de toutes les partitions. Peut être utilisé pour après avoir cloné un disque avec un autre utilitaire.
g Change le GUID du disque.
h Recalcule les valeurs CHS dans le MBR protective ou hybride
i Affiche des informations de partition détaillées.
l Change la valeur d'alignement de secteur. Les disques avec plus de secteurs logiques par secteur physique peuvent souffrir de problèmes de performance si les partitions ne sont pas alignées
m Retourne au menu principal
n Créé un nouveau MBR protective
o Affiche les données du MBR protective
p Affiche la table de partition
q Quitte sans sauvegarder les changements
r Entre dans le menu récupération et transformation
s Redimmensionne la table de partition. La taille est de 128 entrées par défaut. Officiellement, les tables inférieur à 128 entrées (16k) ne sont pas supportés par GPT.
t Inverse 2 entrées de partitions dans la table de partitions. N'altère que leur ordre dans la table
u Réplique la table de partition courante du périphérique dans un autre périphérique.
v Vérifier le disque
z Détruit les structures de données GPT et quitte.
^
02 novembre 2016

htmlpdflatexmanmd




e2label

e2label

Changer le label d'un système de fichier ext2/3/4

   e2label affiche ou change le label d'un système de fichier. Si un label n'est pas spécifié après le périphérique, affice le label courant, sinon le change. Les labels ext2 ne peuvent pas dépasser 16 caractères, au delà e2label tronque le nom et affiche un warning.

^
02 novembre 2016

htmlpdflatexmanmd




logsave

logsave

Sauver la sortie d'une commande dans un logfile

   logsave exécute la commande spécifiée avec les arguments donné, et sauve une copie de sa sortie dans un fichier de log. Si le répertoire pour logfile n'existe pas, logsave accumule la sortie dans sa mémoire jusqu'à ce qu'il puisse écrire. Une copie de la sortie est également écrite sur stdout. si la commande est '-', logsave prend l'entrée standard et le sauve dans le logfile. logsave est utile pour sauvegarder la sortie des scripts de boot jusqu'à ce que la partition /var soit monté.

OPTIONS

-a Ajoute la sortie dans le logfile au lieu d'écraser le fichier
-s Saute l'écriture dans le fichier de log le texte qui est entre crochet avec un ctrl-A (ASCII 001) ou ctrl-B (ASCII 002). Cela permet d'afficher une barre de progression.
-v mode verbeux
^
02 novembre 2016

htmlpdflatexmanmd




e2image

e2image

Sauvegarder les métadonnées critique d'un système de fichier ext2/3/4 dans un fichier

   e2image sauvegarde les métadonnées de système de fichier ext2/3/4 critique dans un fichier. Ce fichier est examiné par dumpe2fs et debugfs, en utilisant l'option -i. Celà permet d'assister un expert dans la récupération catastrophique des systèmes de fichier corrompus. Dans le future, e2fsck sera amélioré pour être capable d'utiliser le fichier image pour aider à récupérer un système de fichier endommagé.

   C'est une très bonne idée de créer des fichiers image de tous les systèmes de fichier dans un système et de sauver le layout de partition (qui est généré avec fdisk -l) à intervals réguliers. Au boot, et/ou chaque semaine ou autre. Li fichier image devrait être stocké dans un autre système de fichier pour s'assurer que ces données sont accessibles.

   Pour sauver de l'espace disque, e2image créé le fichier image comme fichier sparse, ou au format QCOW2. La taille d'un fichier image ext2 dépend principalement de la taille du système de fichier et du nombre d'inode utilisés. Pour un système de fichier de 10Gio avec 200000 inodes utilisé sur 1,2 millions d'inodes, le fichier image fera environ 35Mio; un système de fichier de 4Gio avec 15000 inodes utilisés sur 550000, le fichier image fera environ 3Mio. Les fichiers images sont compressibles, un fichier image de 35 Mio sera compressé à 3 ou 4 Mio.

Restaurer les métadonnées de système de fichier en utilisant un fichier image

   L'option -I de e2image permet d'installer les métadonnées stockées dans le fichier image sur le périphérique. Il peut être utilisé pour restaurer les métadonnées dans des situations d'urgence. Attention, si le système de fichier a changé depuis la sauvegarde les données seront perdues.

Fichiers image raw

   l'option -r créé un fichier image brute au lieu d'un fichier image normal. Un fichier image raw diffère d'un fichier image normal de 2 manière. D'abord, les métadonnées du système de fichier est placé dans la bonne position pour que e2fsck, dumpe2fs, debugfs, etc. puis lancer directement l'image raw. Pour minimiser la quantité d'espace disque consommée par un fichie image raw le fichier est créé comme fichier sparse. Ensuite, l'image raw inclus également des blocks indirects et les blocks répertoire, que l'image normale n'a pas.

Fichiers image qcow2

   L'option -Q créé un fichier image qcow2. ce format contient toutes les informations de l'image raw, cependant il n'est pas sparse. l'image qcow2 minimise la quantité d'espace disque en stockant les données dans un format spécial en packant les données ensemble.

Inclure des données

   Normalement, e2image inclus seulement des métadonnées de système de fichier, pas des données de fichier réguliers. L'option -a permet d'incluse toutes les données. Cela donne une image qui est utilisable pour cloner tout le système de fichier. Noter que cette option ne fonctionne seulement avec les format raw et qcow2.

Offset

   Normalement un système de fichier commence au début d'une partition et e2image est lancé dans cette partition. En travaillant avec des fichiers image, il n'y a pas d'option pour utiliser un périphérique partition, donc il est possible de spécifier l'offset du début du système de fichier directement avec l'option -o. Similairement -O spécifie l'offset qui devrait être recherché dans la destination avant d'écrire le système de fichier.

Par exemple, avec une image dd d'un disque qui contient un système de fichier ext2 dans une partition commençant à 1Mio, on peut cloner ce système de fichier avec:
e2image -aro 1048576 img /dev/sda1
On peut cloner un système de fichier dans un fichier image en laissant le premier Mio pour une table de partition:
e2image -arO 1048576 /dev/sda1 img
^
02 novembre 2016

htmlpdflatexmanmd




filefrag

filefrag

Reporter la fragmentation de fichier

OPTIONS

-B Force l'utilisation de l'ancien ioctl FIBMAP au lieu de FIEMAP
-bblocksize Utilise la taille de blocks spécifié en octets au lieu de la taille de block du système de fichier.
-e  Affiche au format étendus
-k Utilise une taille de block de 1024 octets
-s Synchronise le fichier avec de demander le mappage
-v mode verbeux
-x Affiche le mappage des attributs étendus
-X Affiche les numéro de block étendus au format hexadécimal.
^
02 novembre 2016

htmlpdflatexmanmd




fsck.nfs

fsck.nfs

script fantôme qui retourne toujours un succès

   Debian a besoin de ce script quand le système de fichier racine est sur NFS: Il n'y a pas moyen de connaître si NFS est monté et on a vraiment besoin de faire un fsck -a /. Retourne toujours 0

^
02 novembre 2016

htmlpdflatexmanmd




e4crypt

e4crypt

Utilitaire de chiffrement de système de fichier ext4

Commandes

e4crypt add_key -S [ -k keyring ] [-v] [-q] [ path ... ] Demande à l'utilisateur une passphrase et l'insert dans le keyring spécifié. Si aucun keyring n'est donné, e4crypt utilise le keyring de session s'il existe ou le keyring de session utilisateur. Si un ou plusieurs répertoires sont spécifié, e4crypt tente de définir la stratégie de ces répertoires pour utiliser la clé.
e4crypt get_policy path ... Affiche la stratégie pour les répertoires spécifiés
e4crypt new_session Donne au processus invoquant un nouveau keyring de session, en supprimant l'ancien
e4crypt set_policy policy path ... Définis la stratégie pour les répertoires spécifiés. Tous les répertoires doivent être vide pour définis la stratégie. Si un répertoire a déjà une stratégie établie, e4crypt valide que la stratégie match. Un stratégie est un identifiant de clé de chiffrement consistant de 16 caractères.
^
02 novembre 2016

htmlpdflatexmanmd




e2freefrag

e2freefrag

Affiche les informations de fragmentation de l'espace libre

   e2freefrag est utilisé pour afficher la fragmentation de l'espace libre dans les systèmes de fichier ext2/3/4. e2freefrag scanne le bitmap de block pour vérifier le nombre de blocks libres présent et contigüs et l'espace libre aligné. Le pourcentage de blocks libre contigüs de taille et d'alignement chunk_kb est affiché. Il affiche également la taille de chunk libre minimum/maximum/moyen dans le système de fichier.

OPTIONS

-c chunk_kb Si une taille de chunk est spécifiée, affiche le nombre de chunks libre de cette taille disponible en kio. La taille de chunk doit être une puissante de 2 et doit être supérieur à la taille de block du système de fichier.
^
02 novembre 2016

htmlpdflatexmanmd




tune2fs

tune2fs

Paramétrer un système de fichier ext2/3/4

   tune2fs permet d'ajuster divers paramètres de système de fichier. Les valeurs courantes de ces options peuvent être affichés en utilisant l'option -l ou avec dumpe2fs.

OPTIONS

-c max-mount-counts Ajuste le nombre de montage avant que le système de fichier ne soit vérifié par e2fsck. à 0 ou -1 désactive la vérification.
-C mount-count Définis le nombre de fois que le système de fichier a été monté. À une valeur supérieur à max-mount-counts, e2fsck vérifie le système de fichier au prochain reboot.
-e error-behavior Comportement du kernel en cas d'erreur. (continue, remount-ro, panic)
-E extended-options Définis les options étendues pour le système de fichier. Les options étendues sont séparés par ',' et peuvent prendre un argument avec '='. Les options étendues suivantes sont supportés:

        clear_mmp Reset le block MMP à un état propre.
        mmp_update_interval=interval ajuste l'interval de mise à jours MMP initial. À 0, utilise l'interval par défaut.
        stride=stride-size Configure le système de fichier pour un RAID des blocks de stride-size.
        stripe_width=stripe-width Configure de système de fichier pour un RAID avec des blocks de stripe-width par stripe.
        hash_alg=hash-alg Définis l'algorithme de hashage utilisé pour les systèmes de fichiers avec des répertoires b-tree hashés (legacy, half_md4 et tea)
        mount_opts=mount_option_string Jeu d'options de montage par défaut, utilisé quand le système de fichier est monté. Cette chaîne est stockée dans le superblock.
        test_fs Met un flag dans le superblock indiquant qu'il peut être monté en utilisant le code expérimental du kernel.
        ^test_fs Efface le flag test_fs.

-f Force les opérations même en cas d'erreur. Utile pour supprimer has_journal d'un système de fichier avec un journal externe.
-g group Définis le groupe qui peut utiliser les blocks de système de fichier réservés.
-i interval-between-checks[d|m|w] Ajuste le temps max entre 2 vérification du système de fichier avec le suffix d(jour), m(mois), w(semaine).
-I Change la taille d'inode utilisée par le système de fichier. Nécessite de re-écrire la table d'inode.
-j Ajoute un journal ext3 au système de fichier. Si utilisé dans un système de fichier monté, un fichier immuable .journal est créé. À la vérification du système de fichier, les fichiers .journal sont plasé dans l'inode journal réservé.
-J journal-options Définis ou change les paramètres de journal. Les options suivantes sont supportées:

        size=journal-size Créé un journal stocké dans le système de fichier de taille spécifiée en Mio. entre 1024 et 10 240 000 blocks de système de fichier.
        location=journal-location Spécifie l'emplement du journal. Peut être un numéro de block, ou l'offset depuis le début du fs en suffixant par une unité (M, G, etc)
        device=external-journal Attache le système de fichier au périphérique block jounal spécifié. Le journal doit déjà avoir été créé avec mke2fs -O journal_dev external-journal

-l Liste le contenu du superblock du système de fichier.
-L volume-label Définis le label du volume.
-m reserved-blocks-percentage Définis le pourcentage du système de fichier allouable seulement pour les processus root.
-M last-mounted-directory Définis le dernier répertoire de montage pour le système de fichier
-o [^]mount-option[,...] Définis ou efface les options de montage par défaut dans le système de fichier. Les options de montage peuvent être changés par les options dans /etc/fstab ou avec mount. Les options peuvent être effacées avec '^' ou ajoutés avec '+'. Les options suivantes peuvent être ajustées:

        debug Active le code de debuggage
        bsdgroups Émule le comportement BSD en créant de nouveaux fichiers: il prennent le GID du répertoire dans lequel il a été créé.
        user_xattr Active les attributs étendus
        acl Active les ACL posix
        uid16 Désactive les UID/GID 32bits.
        journal_data Quand le système de fichier est mounté avec la journalisation, toutes les données sont envoyées dans le journal avant d'être écrites dans le système de fichier
        journal_data_ordered Quand la journalisation est active, toutes les données sont écrite directement dans le système de fichier avant que ses métadonnées ne soient envoyées au journal
        journal_data_writeback Quand la journalisation est active, les données peuvent être écrite dans le système de fichier après que ses métadonnées aient été envoyées au journal.
        nobarrier Le système de fichier est monté avec des opération barrière dans le journal désactivé.
        block_validity Le système de fichier sera monté avec l'option de validité de block activé, qui créé des vérifications supplémentaires après chaque lecture/écriture. Empêche la corruption des métadonnées. Augmente la charge CPU et mémoire
        discard Le système de fichier sera monté avec l'option de montage discard. Force le pilote à tenter d'utiliser les fonctionnalité trim/discard de certains stockages (SSD) pour informer le périphérique que des blocks appartenant à des fichiers supprimés peuvent être réutilisés
        nodelalloc Le système de fichier sera monté avec l'option nodelalloc, qui désactive l'allocation retardée.

-O [^]feature[,...] Définis ou efface les fonctionnalités dans le système de fichier. Les fonctionnalités peuvent être effacées avec '^' ou ajoutés avec '+'. Les fonctionnalités suivantes peuvent être ajustées:

        dir_index Utilise des b-trees hashés pour accélérer la recherche de nom dans les grands répertoires.
        dir_nlink Autorise plus de 65000 sous-répertoires par répertoire
        encrypt Chiffrement au niveau du système de fichier des blocks de données et des noms de fichier. les métadonnées d'inode (timestamps, taille de fichier, user/groupe, etc) ne sont pas chiffrés
        extent Permet le mappage des numéros de blocks logiques pour un inode particulier vers des blocks physique dans le périphériques de stockage à stocker en utilisant un extent tree, qui est une structure de données plus efficace que le schéma de block indirect traditionnel utilisé par ext2 et ext3. Cela diminue la charge de block de métadonnées, améliore les performances et diminue le besoin de lancer e2fsck sur le système de fichier.
        extra_isize Réserve un quantité d'espace spécifique dans chaque inode pour les métadonnées étendues tels que les timestamps nanoseconde et la date de création de fichier, même si le kernel n'a pas besoin d'un tel espace. Sans cette option, le kernel réserve de l'espace quand il en a besoin. Utile quand la taille d'inode fait au moins 256 octets.
        filetype Active le stockage des information de type de fichier dans le entrées de répertoire.
        flex_bg Permet aux métadonnées de groupes par block (bitmaps d'allocation et tables d'inodes) d'être placés n'importe où. De plus, mke2fs plase ces métadonnées ensemble en commençant au premier groupe de block de chaque "flex_bg group". La taille du groupe flex_bg peut être spécifié avec l'option -G
        has_journal Créé un journal qui s'assure de la consistance du système de fichier même entre les arrêt non-propre. Équivalent à utiliser l'option -j avec mke2fs ou tune2fs.
        huge_file Permet des fichiers supérieurs à 2Tio
        large_file Définis automatiquement quand un fichier supérieur à 2Gio est créé.
        metadata_csum Stocke un checksum pour protéger le contenu de chaque block de métadonnées
        mmp Fournis une protection de montage multipoint. Utile dans les environnements de stockage partagés
        project Fournis le support des quotas de projet. Avec cette fonctionnalité, le project ID de l'inode est géré quand le système de fichier est monté.
        quota Créé des inodes quota (inode #3 pour usrquota, #4 pour grpquota) et les définis dans le superblock. Avec cette fonctionnalité, les quotas sont activés automatiquement quand le système de fichier est monté.
        read-only Force le kernel à mounter le système en lecture-seule
        resize_inode indique que de l'espace a été réservé pour que la table de descripteur de groupe de block puisse être étendue en redimmensionnant un système de fichier monté. L'opération de redimensionnement online est géré par le kernel, piloté par resize2fs. Nécessite également sparse_super.
        sparse_super Indique que les copies backup du superblock et les descripteurs de groupe de block sont présent seulement dans quelques groupes de block, pas tous.
        uninit_bg Indique que les descripteurs de groupe de block sont protégés en utilisant des checksums, permettant à mke2fs de créer un système de fichier sans initialiser tous les groupes de block. Accélère la création des systèmes de fichier.

-p mmp_check_interval Définis l'interval de vérification MMP. Défaut: 5 secondes
-r reserved-blocks-count Définis le nombre de blocks réservés dans le système de fichiers
-Q quota-options Définis les quota dans le superblock:

        [^]usrquota Définis/indéfinis le quota d'inode utilisateur dans le superblock
        [^]grpquota Définis/indéfinis le quota d'inode de groupe dans le superblock
        [^]prjquota Définis/indéfinis le quota d'inode de projet dans le superblock

-T time-last-checked Définis la date de dernière vérification en utilisant e2fsck. Utilise le timezone local.
-u user Définis l'utilisateur qui peut utiliser les blocks réservés.
-U UUID Définis l'UUID du système de fichier. peut être 'clear' (supprime l'UUID), 'random', ou 'time'.
-z undo_file Avant d'écraser un block, écris son contenu dans un fichier undo.
^
01 novembre 2016

htmlpdflatexmanmd




e4defrag

e4defrag

Défragmenter un système de fichier ext4

   e4defrag réduit la fragmentation de fichier basé sur extent. La cible est un fichier régulier, un répertoire, ou un périphérique qui est monté en ext4.

OPTIONS

-c Récupérer le compteur de fragmentation courant et un compteur de fragmentation idéal, et calcule le score de fragmentation. Si spécifié, la défragmentation n'est pas effectuée
-v mode verbeux

Notes

   e4defrag ne supporte pas les fichier swap, les fichiers dans lost+found, et les fichiers alloués dans des blocks indirect. Quand la cible est un périphérique ou un point de montage, e4defrag de défragmente pas les fichiers dans les points de montages des autre périphériques. Il est sûre de lancer e4defrag sur un fichier activement utilisé par une autre application. Vu que le contenu des blocks du fichier sont copiés en utilisant le cache de page, cela peut améliorer les performance pour e4defrag et l'application dûs à la contention dans la mémoire système et la bande passante du disque.
^
01 novembre 2016

htmlpdflatexmanmd




mklost+found

mklost+found

Créer un répertoire lost+found dans un système de fichier étendu linux

   mklost+found est utilisé pour créer un répertoire mklost+found dans le répertoire de travail courant. Il y a normalement un répertoire lost+found à la racine de chaque système de fichier. mklost+found pré-alloue des blocks de disque dans le répertoire lost+found pour que lorsque e2fsck est lancé pour récupérer un système de fichier, il n'a pas besoin d'allouer des blocks dans le système de fichier pour stocker un grand nombre de fichiers non liés. Cela permet de s'assurer que e2fsck n'a pas a allouer de blocks de données durant la récupération d'un système de fichier.

^
01 novembre 2016

htmlpdflatexmanmd




fsck

fsck

Vérifier et réparer un système de fichier

   fsck est utilisé pour vérifier et optionnellement réparer un ou plusieurs systèmes de fichier Linux. Si aucun système de fichier n'est spécifié sur la ligne de commande, ni l'option -A, fsck vérifie les systèmes de fichier dans /etc/fstab. Équivalent à -As.

Codes de sortie

0 Pas d'erreurs
1 Erreurs du système de fichier corrigés
2 Le système devrait être redémarré
4 Des erreurs sont à corriger
8 Erreur d'opération
16 Erreur d'utilisation ou de syntaxe
32 Vérification annulée à la demande de l'utilisateur
128 Erreur de librairie partagée

OPTIONS

-l Créé un fichier lock flock(2) (/run/fsck/‹diskname›.lock) pour le périphérique.
-r [fd] Affiche des statistiques pour chaque opération complétée.
-s Sérialise les opérations fsck
-t fslist Spécifie les types de système de fichier à vérifier. Avec -A, seul les systèmes de fichier qui matchent la liste sont vérifiés.
-A Parcour /etc/fstab et tente de vérifier tous les systèmes de fichier en une passe, en respectant l'ordre du champ fs_passno.
-C [fd] Affiche une barre de progression pour les systèmes de fichier que le supporte
-M Ne pas vérifier les systèmes de fichier montés
-N Mode test, n'exécute rien
-P Avec -A, vérifie le système de fichier racine en parallèle avec d'autres système de fichier.
-R Avec -A, ne vérifie pas le système de fichier racine
-T N'affiche pas le titre au démarrage
-v mode verbeux
fs-specific-options Les options non comprises sont passés au vérificateur de système de fichier.
-a Répare automatiquement le système de fichier sans poser de question.
-n  Pour certains systèmes de fichier, évite de tenter de réparer un problème, mais affiche simplement le problème.
-r Réparation intéractive
-y Pour certains systèmes de fichier, tente toujours de détecter et réparer les corruptions automatiquement.

Variables d'environnement

FSCK_FORCE_ALL_PARALLEL Si définis, fsck tente de vérifier tous les systèmes de fichier en parallèle. Utile pour les systèmes RAID
FSCK_MAX_INST Limite le nombre de checkers en concurrence.
PATH Les chemins de recherche pour les commandes
FSTAB_FILE Enplacement du fichier fstab
LIBBLKID_DEBUG =all Activer la sortie de débogage de libblkid
LIBMOUNT_DEBUG =all Activer la sortie de débogage de libmount.
^
01 novembre 2016

htmlpdflatexmanmd




resize2fs

resize2fs

Redimensionner un système de fichier ext2/3/4

   Il peut être utilisé pour agrandir ou réduire un système de fichier non monté. Si le système de fichier est monté il peut être étendu si le kernel supporte le redimensionnement à chaud. La taille peut être en s (secteurs de 512 octets), K (Kio), M (Mio), ou G (Gio). resize2fs ne manipule pas la taille des partitions, utiliser fdisk ou lvextend.

OPTIONS

-b Active la fonctionnalité 64bits, redimensionne les descripteurs de groupe si nécessaire et déplace les métadonnées en conséquence.
-d debug-flags Active divers fonctionnalités de debugage:

        2 relocalisations de block
        4 relocalisation d'inode
        8 Déplacement de table d'inode
        16 information de temps
        32 Calcule de taille minimum de système de fichier.

-f Force le traitement
-F Vide le tampon dy périphérique avant de commencer.
-M réduit le système de fichier pour minimiser sa taille autant que possible
-p Affiche une barre de progression
-P Affiche une estimation sur le nombre de blocks dans ce système de fichier avec -M et quitte.
-s Désactive la fonctionnalité 64bits, et libère les blocks qui ne sont plus utilisés.
-S RAID-stride resize2fs determine le stride RAID spécifié à la création du système de fichier. Cette option permet de spécifier le stride manuellement.
-z undo_file Avant d'écraser un block, l'écrit dans un fichier undo.
^
01 novembre 2016

htmlpdflatexmanmd




mke2fs

mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev

Créer un système de fichiers ext2/3/4

OPTIONS

-b block-size Indiquer la taille des blocks en octets. Les tailles valides sont: 1024, 2048 et 4096 octets par block.
-c Vérifier les blocs défectueux avant de créer le système de fichier. Indiqué 2 fois, un test en lecture/écriture plus lent est utilisé.
-C cluster-size Indiquer la taille du cluster en octets pour les systèmes de fichiers utilisant bigalloc. Les valeurs corrects sont entre 2048octets et 256Mo par cluster.
-D Utilise les E/S directs pour l'écriture sur disque. Évite d'utiliser trop de mémoire tampon qui peut influer sur des applications en cours de fonctionnement, mais au prix d'un formattage plus lent.
-e error-behavior Change le comportement du kernel quand des erreurs sont détectés. Dans tous les cas, une erreur force e2fsck au prochain reboot:

        continue Continue l'exécution normalement
        remount-ro Remonte le système de fichier en lecture seule
        panic Créé un kernel panic

-E extended-options Définis des options étendues:

        mmp_update_interval=interval Ajuste l'interval de mise à jours MMP en secondes. 0 = défaut. Doit être inférieur à 300 secondes
        stride=stride-size Configure le système de fichier pour un RAID avec des blocks de système de fichier de stride-size. C'est le nombre de blocks lus ou écris sur disque avant de changer de disque, souvent référré à la taille de chunk.
        stripe_width=stripe-width Configure le système de fichier pour un RAID avec des blocks de système de fichier de stripe-width par stripe. Généralement stride-size * N, où N est le nombre de disques de données dans le RAID.
        offset=offset Créé le système de fichier à un offset depuis le début du périphérique. Utile pour créer des images disques pour les machines virtuelles
        resize=max-online-resize Réserve suffisamment d'espace pour que la table de descripteur de groupe de block puis grandir pour supporter un système de fichier qui a max-online-resize blocks
        lazy_itable_init[= ծ to disable, 1 to enable›] activé et uninit_bg activé, la table d'inode n'est pas complètement initialisée par mke2fs. Accélère l'initialisation du système de fichiers.
        lazy_journal_init[= ծ to disable, 1 to enable›] Activé, l'inde journal n'est pas complètement remplis de 0 par mke2fs. Accélère l'initialisation du système de fichiers.
        num_backup_sb=ծ|1|2› Si sparse_super2 est activé, cette option contrôle s'il y a 0, 1 ou 2 backups des superblocks
        packed_meta_blocks[= ծ to disable, 1 to enable›] Place les bitmaps d'allocation et la table d'inode au début du disque. Nécessite flex_bg, et créé également le journal au début du système de fichier. Utile pour les disques flash qui utilisent SLC flash au début du disque. Maximise également la zone de blocks de données contigus.
        root_owner[=uid:gid] Spécifie le UID/GID du répertoire root. Non spécifié, utilise ceux ayant appelé mke2fs.
        test_fs Définis un flag dans le superblock indiquant qu'il peut être monté en utilisant le code expérimental du kernel, tels que le système de fichier ext4dev
        discard Tente de rejeter les blocks au moment du mkfs (rejeter les blocks initialement est utile dans les disques SSD et les stockages sparse/thin-provisioned). Quand le périphérique annonce qu'il rejète toutes les données à 0, il marques toutes les tables d'inode non encore à 0 comme à 0. Celà accelère l'initialisation du système de fichier. Mis par défaut
        nodiscard Ne tente pas de rejeter les blocks
        quotatype Spécifie les types de quota (usrquota, grpquota, prjquota) qui doivent être activés dans le système de fichier créé. Si project est activé, prjquota sera initialisé également.

-f fragment-size Spécifie a taile de fragments en octets
-F Force mke2fs à créer un système de fichier même si le périphérique spécifié n'est pas une partition dans un périphérique block, ou si d'autres paramètres n'ont pas de sens. Peut être spécifié 2 fois
-g blocks-per-group Spécifie le nombre de blocks dans un groupe de block. Normalement cette option ne devrait pas être utilisée
-G number-of-groups Spécifie le nombre de groupes de blocks qui sont packés ensemble pour créer un plus grand groupe de block virtuel (ou groupe flex_bg). Celà améliore la localité des méta-données et les performances pour les grosses charges de méta-données. Le nombre de groupes doit être une puissance de 2.
-i bytes-per-inode Spécifie le ration octet/inode. mke2fs créé un inode pour chaque bytes-per-inode octets d'espace dans le disque. Il n'est pas possible de changer ce ratio après la création du système de fichier. Noter que redimensionner un système de fichier change le nombre d'inode pour maintenir ce ratio.
-I inode-size Spécifie la taille de chaque inode en octets. Doit être une puissance de 2 supérieur ou égal à 128. Il n'est pas possible de changer cette valeur après la création du système de fichier.
-j Créer un système de fichier avec un journal ext3.
-J journal-options Créé un journal ext3 en utilisant les options spécifiées:

        size=journal-size Créé un journal interne de la taille spécifiée en Mo. Doit être d'au-moins 1024 blocks de système de fichier et maximum 10.240.000 blocks.
        location=journal-location Spécifie l'emplacement du journal. Peut être spécifié soit comme numéro de block, ou comme offset depuis le début du système de fichier en spécifiant une unité (M, G, etc).
        device=external-journal Attache le système de fichier au périphérique block journal spécifié. Le journal externe doit d'abord avoir été créé avec mke2fs -O journal_dev external-journal. Noter que le journal doit avec la même taille de block
        -l filename Lit la liste de blocks défectueux depuis le fichier.
        -L new-volume-label Définis le label pour le système de fichier. (max 16 octets)
        -m reserved-blocks-percentage Spécifie le pourcentage de blocks réservés pour le superuser. Évite la fragmentation, et permet aux services root comme syslogd de continuer de fonctionner correctement que des processus non-privilégiés soient blockés en écriture. Défaut: 5%
        -M last-mounted-directory Définis le dernier réperoire monté pour le système de fichier. Peut être utile pour les utilitaires qui désactivent le dernier répertoire monté pour déterminer où le système de fichier devrait être monté.
        -n  Mode simulation. Ne créé pas de système de fichier, mais affiche se qu'il fait.
        -N number-of-inodes Change le calcul par défaut du nombre d'inodes qui devraient être réservés pour le système de fichier (qui est basé sur le nombre de blocks et le ratio bytes-per-inode).
        -o creator-os Remplace la valeur par défaut du champs "creator operating system" du système de fichier. Ce champ est généralement mis au nom de L'OS pour lequel mke2fs est compilé.
        -O [^]feature[,...] Créé un système de fichier avec les fonctionnalité données. Les fonctionnalités par défaut sont spécifiées dans la section [defaults] de /etc/mke2fs.conf ou dans les sous-sections [fs_types] pour les types d'utilisation tel que spécifié par -T.
        -q Mode silencieux
        -r revision Définis la révision du système de fichier pour le nouveau système de fichier. Défaut: 1
        -S Écris le superblock et les descripteurs de groupe uniquement. Mesure extrême à prendre seulement dans le cas ou tous les superblocks et sauvegardes sont corrompues.
        -t fs-type Spécifie le type de système de fichier (ext2, ext3, ext4, etc) à créer.
        -T usage-type[,...] Spécifie comme le système de fichier est utilisé, pour que mke2fs puisse choisir des paramètres de système de fichier optimals.
        -U UUID Spécifie l'UUID
        -v mode verbeux
        -z undo_file Avant d'écraser un block de système de fichier, écris l'ancien contenu dans un fichier d'undo. Peut être utilisé par e2undo pour restaurer l'ancien contenu. Si aucun nom de fichier n'est spécifié, créé un mke2fs-device.e2undo dans le répertoire spécifié par E2FSPROGS_UNDO_DIR, ou la directive undo_dir dans le fichier de configuration.

Variables d'environnement

MKE2FS_SYNC Non 0, détermine la fréquence d'appel à sync(2) durant l'initialisatio de la table d'inode
MKE2FS_CONFIG Emplacement du fichier de configuration pour mke2fs
MKE2FS_FIRST_META_BG Non 0, sa valeur est utilisée pour déterminer le premier groupe de block méta.
MKE2FS_DEVICE_SECTSIZE Non 0, sa valeur est utilisée pour déterminer la taille de secteur physique
MKE2FS_SKIP_CHECK_MSG Définis, n'affiche pas le message de vérification automatique des systèmes de fichier causés par le compteur de mount ou l'interval de vérification.
^
01 novembre 2016

htmlpdflatexmanmd




mke2fs.conf

mke2fs.conf

Fichier de configuration pour mke2fs

Exemple


[section1]
    tag1 = value_a
    tag1 = value_b
    tag2 = value_c
    
[section 2]
    tag3 = {
        subtag1 = subtag_value_a
        subtag1 = subtag_value_b
        subtag2 = subtag_value_c
    }
    tag1 = value_d
    tag2 = value_e
}

Sections

[options] Contient les relations qui influencent le comportement de mke2fs
[defaults] Contient les paramètres à utiliser par défaut par mke2fs.
[fs_types] Contient les relations qui définissent les paramètres par défaut utilisé pour un système de fichier et une utilisation spécifigue.

[options]

proceed_delay Mis à un entier positif, mke2fs traite après ce délais en seconde, après avoir demandé à l'utilisateur la permission de traiter, même si l'utilisateur n'a pas répondu. Défaut: 0, attend indéfiniment la réponse du client.

[defaults]

base_features Spécifie les fonctionnalités activés pour les systèmes de fichier nouvellement créés.
default_features Fonctionnalités qui devraient être ajoutés ou supprimés des fonctionnalités listées dans base_features.
enable_periodic_fsck (bool) spécifie si une vérification du système de fichier devrait être forcé au boot. À true, vérifie tous les 180 jours, ou après un nombre aléatoire de montage.
force_undo (bool) à true, mke2fs tente toujours de créer un fichier d'undo, même si le fichier peut être gros et peut ralentir la création du système de fichier.
fs_type Type de système de fichier par défaut.
undo_dir Répertoire où placer le fichier d'undo.

   Tous les tags qui peuvent être spécifiés par sous-section peut être définis dans cette section.

[fs_types]

   Chaque tag dans cette section nomme un type de système de fichier ou utilisation qui peut être spécifié avec -t ou -T. Si mke2fs est lancé sous le nom mke2fs.ext4, il utilise le type de système de fichier ext4 et les options dans le tag ext4.

base_features Fonctionnalités initialement activé pour ce type de système de fichier
errors Comportement en cas d'erreur (continue, remount-ro, panic)
features Liste de fonctionnalités qui modifie le jeu de fonctionnalité utilisé par le nouveau système de fichier construit. La syntaxe est la même de l'option -O.
default_features Jeu de fonctionnalité qui devraient être activés ou désactivés après avoir appliqué les fonctionnalités listées dans base_features et features. Peut êtr changé par -O.
auto_64-bit_support (bool) spécifie si mke2fs ajoute automatiquement le 64bits si le nombre de blocks le nécessite. resize_inode est automatiquement désactivé vu qu'il ne supporte pas les numéros de blocks 64bits.
default_mntopts Jeu d'options de montage à activer par défaut.
blocksize Taille de block par défaut.
lazy_itable_init Spécifie si la table d'inode ne devrait pas être initialisé complètement.
journal_location Spécifie l'emplacement du journal
num_backup_sb indique si les systèmes de fichier avec sparse_super2 devraient avoir 0, 1 ou 2 sauvegardes
packed_meta_blocks (bool) spécifie si l'emplacement des bitmaps d'allocation, table d'inode, et journal devraient être localisés au début du système de fichier.
inode_ratio Spécifie le ratio d'inode par défaut
inode_size Taille d'inode
reserved_ratio Pourcentage de blocks réservé pour root
hash_alg Spécifie l'algorithme de hashage utilisé pour les nouveaux système de fichier avec des répertoire b-tree hashés (legacy, half_md4, et tea).
flex_bg_size Spécifie le nombre de groupes de blocks packés ensemble pour en créer un grand virtuel.
options Options étendues additionnelles, équivalent à -E.
discard (bool) Indique que mke2fs doit ignorer le périphérique avant la création du système de fichier
cluster_size Taille de cluster par défaut si bigalloc est activé.
make_hugefiles (boo) permet la création de fichiers pré-alloués comme partie du formattage du système de fichier.
hugefiles_uid UID pour tous les fichiers et répertoires créés par la fonctionnalité make_hugefiles
hugefiles_gid GID pour tous les fichiers et répertoires créés par la fonctionnalité make_hugefiles
hugefiles_umask umask de création utilisé pour créer les fichiers et répertoires par la fonctionnalité make_hugefiles
num_hugefiles Nombre de hugefiles à créer.
hugefiles_slack Spécifie l'espace réservé pour d'autres fichiers
hugefiles_size Taille des huge files. Non spécifié, remplis tous le système de fichier
hugefiles_align Spécifie l'alignement pour le block de début des huges files.
hugefiles_align_disk Spécifie si l'alignement devrait être relatif au début du disque. Défaut: false = aligné au début du système de fichier.
hugefiles_name Spécifie le nom de fichier de base pour les huge files
hugefiles_digits Spécifie la largueur (0 padded) du champs pour le nombre de huge file
zero_hugefiles (bool) spécifie si les blocks 0 sont écris dans les hugefiles à leur création par mke2fs.

[devices]

   Chaque tag dans cette section nomme un périphérique pour que des paramètres par défaut puissent être spécifiés.

fs_type Paramètre par défaut pour l'option -t si non spécifié sur la ligne de commande
usage_types Paramètre par défaut pour l'option -T si non spécifié sur la ligne de commande
^
01 novembre 2016

htmlpdflatexmanmd




e2undo

e2undo

Rejouer un log undo pour un système de fichier ext2/3/4

OPTIONS

-f Normalement, e2undo vérifie le superblock du système de fichier pour s'assurer que le log undo correspond. -f désactive cette vérification
-n  Mode test, n'écris rien dans le système de fichier
-o offset offset du système de fichier en octet depuis le début du périphérique.
-v Affiche les blocks qui sont rejoués.
^
31 octobre 2016

htmlpdflatexmanmd




ext4

ext4

4ème système de fichier étendu

Fonctionnalités

   Un système de fichier formatté en ext4 peut avoir certains flags de fonctionnalités embarqués:

64bits Active les systèmes de fichiers supérieurs à 2^32 blocks. Cette fonctionnalité est active automatiquement si nécessaire.
bigalloc Active l'allocation de blocks clusterisés, pour que l'unité d'allocation soit une puissance de 2 nombres de blocks. C'est à dire, chaque bit dans le bitmap d'allocation de block indique désormais si un cluster est utilisé ou non, où un cluster est par défaut composé de 16 blocks. Cette fonctionnalité peut diminuer le temps passé à allouer des blocks et réduit la fragmentation, spécialement pour les grands fichiers. La taille peut être spécifiée en utilisant mke2fs -C.
dir_index Utilise des b-trees hashés pour accélérer la recherche de nom dans les grands répertoires.
dir_nlink Autorise plus de 65000 sous-répertoires par répertoire
encrypt Chiffrement au niveau du système de fichier des blocks de données et des noms de fichier. les métadonnées d'inode (timestamps, taille de fichier, user/groupe, etc) ne sont pas chiffrés
ext_attr Active l'utilisation d'attributs étendus.
extent Permet le mappage des numéros de blocks logiques pour un inode particulier vers des blocks physique dans le périphériques de stockage à stocker en utilisant un extent tree, qui est une structure de données plus efficace que le schéma de block indirect traditionnel utilisé par ext2 et ext3. Cela diminue la charge de block de métadonnées, améliore les performances et diminue le besoin de lancer e2fsck sur le système de fichier.
extra_isize Réserve un quantité d'espace spécifique dans chaque inode pour les métadonnées étendues tels que les timestamps nanoseconde et la date de création de fichier, même si le kernel n'a pas besoin d'un tel espace. Sans cette option, le kernel réserve de l'espace quand il en a besoin. Utile quand la taille d'inode fait au moins 256 octets.
filetype Active le stockage des information de type de fichier dans le entrées de répertoire.
flex_bg Permet aux métadonnées de groupes par block (bitmaps d'allocation et tables d'inodes) d'être placés n'importe où. De plus, mke2fs plase ces métadonnées ensemble en commençant au premier groupe de block de chaque "flex_bg group". La taille du groupe flex_bg peut être spécifié avec l'option -G
has_journal Créé un journal qui s'assure de la consistance du système de fichier même entre les arrêt non-propre. Équivalent à utiliser l'option -j avec mke2fs ou tune2fs.
huge_file Permet des fichiers supérieurs à 2Tio
inline_data Permet de stocker des données dans l'inode et dans les zones d'attributs étendus.
journal_dev Active dans le superblock dans un périphérique journal externe. La taille de block pour le journal externe doit être la même que le système de fichier.
large_file Définis automatiquement quand un fichier supérieur à 2Gio est créé.
meta_bg Permet de redimensionner un système de fichiers online sans réserver explicitement de l'espace pour agrandir la taille des descripteurs de groupe de block. Également utilisé pour redimensionner des systèmes de fichier supérieurs à 2^32 blocks. Non recommandé à la création d'un système de fichier.
mmp Fournis une protection de montage multipoint. Utile dans les environnements de stockage partagés
project Fournis le support des quotas de projet. Avec cette fonctionnalité, le project ID de l'inode est géré quand le système de fichier est monté.
quota Créé des inodes quota (inode #3 pour usrquota, #4 pour grpquota) et les définis dans le superblock. Avec cette fonctionnalité, les quotas sont activés automatiquement quand le système de fichier est monté.
resize_inode indique que de l'espace a été réservé pour que la table de descripteur de groupe de block puisse être étendue en redimmensionnant un système de fichier monté. L'opération de redimensionnement online est géré par le kernel, piloté par resize2fs. Nécessite également sparse_super.
sparse_super Indique que les copies backup du superblock et les descripteurs de groupe de block sont présent seulement dans quelques groupes de block, pas tous.
sparse_super2 Indique qu'il y a seulement 2 sauvegardes de superblock et des descripteurs de groupe de block. Les groupes de block utilisés pour les sauvegardes sont stockés dans le superblock, mais typiquement, sera localisé au début du groupe de block #1, et un dans le dernier groupe de block dans le système de fichier. Version extrême de sparse_super et est conçus pour permettre qu'un plus grand pourcentage du disque ait des blocks contigus disponible pour les fichiers.
uninit_bg Indique que les descripteurs de groupe de block sont protégés en utilisant des checksums, permettant à mke2fs de créer un système de fichier sans initialiser tous les groupes de block. Accélère la création des systèmes de fichier.

Options de montage

journal_dev=devnum/journal_path=path Quand les numéros majeur/mineur du périphérique de journal externe a été changé, ces options permettent à l'utilisateur de spécifier le nouvel emplacement du journal.
norecovery|noload Ne charge pas le journal au montage. Noter que si le système de fichier n'a pas été démonté proprement, ne pas rejouer le journal peut engendrer des inconsistances dans le système de fichier.
data={journal|ordered|writeback} Spécifie le mode de journalisation. Les métadonnées sont toujours journalisés:

        journal Toutes les données sont envoyées au journal avant d'être écrit dans le système de fichier
        ordered mode par défaut. Toutes les données sont écrites dans le système de fichier avant que ses métadonnées soient envoyées au journal
        writeback L'ordre des données n'est pas préservé - les données peuvent être écrites dans le système de fichier après que ses métodonnées aient été envoyées au journal. Plus performant et garanti l'intégrité du système de fichier, mais d'anciennes données peuvent apparaître dans les fichiers après un crash et une récupération journal.

commit=nrsec Synchronise toutes les données et métadonnées chaque nrsec secondes. Défaut: 5. 0=défaut.
oldalloc|orlov Utilise l'ancien allocateur ou l'allocateur Orlov pour les nouveaux inode. Orlov est le défaut.
[no]user_xattr Active les attributs étendus
[no]acl Support pour les ACL posix
bsddf|minixdf Définis le comportement pour l'appel système statfs. minixdf retourne dans le champ f_blocks le nombre total de blocks, bsddf soustrait les blocks utilisé par ext4 et non disponible pour le stockage.
debug Affiche des informations de debuggage à chaque remontage
errors={continue|remount-ro|panic} Définis le comportement si une erreur est rencontrée
data_err=ignore|abord Affiche simplement un message d'erreur si une erreur se produit (ignore), ou annule le journal (abort)
grpid|bsdgroups et nogrpid|sysvgroups Définissent quel GID a un fichier nouvellement créé. avec grpid, il prend le GID du répertoire dans lequel il a été créé; sinon (le défaut), il prend le fsgid du processus courant, sauf si le setgid est mis, auquel cas il prend le gid du répertoire parent et obtient le setgid si c'est un répertoire lui-même.
sb=n Au lieu du block 1, utilise le block n comme superblock. Peut être utile quand le système de fichier a été endommagé.
nouid32 Désactive les UID et GID 32bits. Pour compatibilité avec les anciens kernel.
grpquota|usrquota|quota|noquota active le support des quotas
usrjquota=aquota.user|grpjquota=aquota.group|jqfmt=vfsv0 Support pour les quotas journalisés (quota version 2). jqfmt=vfsv0 active les quotas journalisés. Pour les quotas journalisés les options de montage usrjquota=aquota.user et grpjquota=aquota.group sont requis pour indiquer au système de quota quels bases de quota utiliser. Les quotas journalisés ont l'avantage que même après un crash aucune vérification de quota n'est requis.
journal_checksum Active le cheksum des transactions du journal. Permet au code de récupération dans e2fsck et le kernel de détecter les corruptions dans le kernel.
journal_async_commit Les blocks émis peuvent être écris sur le disque sans attendre les blocks descripteur.
barrier=0 / barrier=1 / barrier / nobarrier Active l'utilisation de barrières d'écriture dans le code jbd. Ces barrières forcent l'ordre sur disque correcte des commits journaux, rendant les cache d'écritures disque volatiles plus sûres, au prix d'une pénalité de performances.
inode_readahead_blks=n contrôle le nombre maximum de blocks de table d'inodes que l'algorithme readahead de table d'inode pré-lit dans le cache. La valeur doit être une puissance de 2. Défaut: 32 blocks
stripe=n Nombre de blocks de système de fichiers que mballoc tente d'utiliser pour la taille d'allocation et l'alignement. Pour les systèmes RAID5/6, c'est le nombre de disques de données * la taille de chunk dans les blocks du système de fichier.
delalloc|nodelalloc Défère l'allocation de block jusqu'au moment de l'écriture
max_batch_time=usec Temps max d'attente pour des opérations de système de fichier additionnels à batcher ensemble avec une opération d'écriture synchrone. Vu qu'une opération d'écriture synchrone force un commit puis attend que l'opération d'E/S se complète, cela ne coûte rien et peut être un gros gain de débit, on attend un peut pour voir si une autre transaction peut se greffer dans l'écriture synchrone. L'algorithme utilisé est conçus pour la vitesse disque, en mesurant la quantité de temps qu'il prend pour finir un commit.
min_batch_time=usec Temps de commit minimum. Défaut: 0ms. Augmenter ce paramètre peut améliorer des charges synchrone multi-threadés sur les disques rapide, au prix d'une latence accrue.
journal_ioprio=prio Priorité E/S (de 0 à 7, 0 étant la priorité la plus élevée) qui devrait être utilisé pour les opérations d'E/S envoyés par kjournald2 durant une opération commit. Défaut: 3, qui est légèrement supérieur à la priorité E/S par défaut.
abort simule les effets de ext4_abort().
auto_da_alloc|noauto_da_alloc De nombreuses applications cassées n'utilisent pas fsync() en remplaçant les fichiers existant via des pattern. Si auto_da_alloc est activé, ext4 détecte les pattern replace-via-rename et replace-via-truncate et force toutes allocations de blocks retardés à être alloués au prochain commit journal, dans le mode data=ordered.
noinit_itable N'initialise pas les blocks de table d'inode non-initialisés en fond. Peut être utilisé par les CD d'installation pour que le processus d'installation puisse se compléter le plus vite possible; le processus d'initialisation de table d'inode sera déférré à la prochaine fois que le système de fichier est monté
init_itable=n Le code itable attend n fois le nombre de millisecondes qu'il a pris pour remplir de 0 la table d'inode du groupe de block précédent. Celà minimise l'impact sur les performances système à l'initialisation des tables d'inode
discard/nodiscard Contrôle si ext4 devrait émettre des commandes discard/TRIM au périphérique block quand des blocks sont libérés. Utile pour des disques SSD et les LUN sparse/thinly-provisionned.
block_validity/noblock_validity Active la facilité kernel pour traquer les blocks de métadonnées du système de fichier dans les structures de données interne. Cela permet à l'allocateur multi-block et d'autres routines de rapidement localiser les extents qui peuvent chevaucher les blocks de métadonnées. Cette option est prévu pour du debugging.
dioread_lock/dioread_nolock Contrôle si ext4 devrait ou non utilise les locks de lecture DIO. Si l'option dioread_nolock est donné, alloue les extents non initialisés avant l'écriture du tampon et convertis l'extent en initialisé après que les E/S soient complétés. Cette approche permet d'éviter d'utiliser d'inode mutex, qui améliore l'évolutivité sur les stockages à haute vitesse. Cependant cela ne fonctionne pas avec les données journalisée et l'option dioread_nolock est ignorée.
max_dir_size_kb=n Limite la taille des répertoires pour que toute tentative de les étendre au-delà de cette limite en Kio génère une erreur ENOSPC. Utile dans les environnement en mémoire contrainte, où de très gros répertoires peut causer de sérieux problèmes de performances. (par exemple, s'il y a seulement 512Mo de mémoire disponible, un répertoire de 176Mo peut sérieusement monopoliser les ressources système.
i_version Active le support d'inode 64bits. Défaut: off.

Attributs de fichier

a Ajouter uniquement
A Pas de mise à jours du atime
d Pas de dump
D Mise à jours de répertoire synchrone
i immuable
S Mises à jours synchrone
u Non supprimable
j Données journalisées
e Format étendu
^
12 octobre 2016

htmlpdflatexmanmd




multipath

multipath

Auto-configuration de targets Device Mapper

   multipath est utilisé pour détecter et regrouper les chemins multiples vers des périphériques, pour la tolérance aux pannes ou pour des raisons de performance.

OPTIONS

-v level Niveau de verbosité

        0 Pas de sortie
        1 Affiche les noms créés ou mis à jours uniquement
        2+ Affiche toutes les informations

-d mode simulation
-l Affiche la topologie multipath depuis les informations dans sysfs et device mapper
-ll Affiche la topologie multipath depuis tous les sources d'information disponible
-f Enlève le périphérique multipath spécifié, si inutilisé
-F enlève tous les périphériques multipath non-utilisés
-t Affiche la table hardware interne
-r Force le rechargement devmap
-i Ignore le fichier wwids en traitant les périphériques
-B Traite le fichier bindings en lecture seule
-b bindings_file Spécifie l'emplacement du fichier bindings
-c Vérifie si un périphérique block devrait être un chemin dans un périphérique multipath
-q Autorise les tables de périphérique avec queue_if_no_path quand multipathd n'est pas en cour de fonctionnement
-a Ajoute le wwid pour le périphérique spécifié dans le fichiers wwids
-u Vérifie si le périphérique spécifié dans l'environnement devrait être dans un périphérique multipath
-w Supprime le wwid pour le périphérique spécifié dans le fichier wwid
-W Réinitialise le fichier wwid pour seulement inclure les périphériques multipath courants
-p policy Force les nouveaux mappage à utiliser la stratégie spécifiée:

        failover 1 chemin par groupe de priorité
        multibus Tous les chemins dans un groupe de priorité
        group_by_serial Un groupe de priorité par sérial
        group_by_prio Un groupe de priorité par valeur de priorité.
        group_by_node_name Un groupe de priorité par nom de nœud cible. Les noms sont pris dans /sys/class/fc_transport/target*/node_name
^
12 octobre 2016

htmlpdflatexmanmd




multipathd

multipathd

service multipath

   Le service multipathd est en charge de vérifier les chemins en erreur. Quand celà se produit, il reconfigure la map multipath auquel le chemin appartient, pour que cette map regagne un maximum de performance et de redondance.

   Ce service exécute l'outil de configuration multipath externe quand les événements se produisent. En retour, l'outil multipath signale au service multipathd quand c'est fait avec la reconfiguration devmap, pour qu'il puisse rafraîchir sa liste de path échoués.

OPTIONS

-d Ne met pas en tâche de fond.
-s Supprime l'horodatage
-v level Niveau de verbosité. 0=error. 3 et + affiche beaucoups d'information
-B Liaisons lecture-seule
-k Mode interractif.
-n  Ignore les nouveaux périphériques

Commandes

list|show paths Affiche les chemins que multipathd monitore et leur état.
list|show paths format $format Affiche les chemins que multipathd monitore en utilisant un format spécifié
list|show maps|multipaths Affiche les périphériques multipath que multipathd monitore
list|show maps|multipaths format $format Affiche le status de tous les périphériques multipath qui multipathd gère, en utilisant un format contenant des wildcard
list|show maps|multipaths status Affiche le status de tous les périphériques que multipathd monitore
list|show maps|multipaths stats Affiche des statistiques sur tous les périphériques multipath que multipathd monitore
list|show maps|multipaths topology Affiche la topologie multipath courante. Identique à multipath -ll
list|show topology Affiche la topologie multipath courante. Identique à multipath -ll
list|show map|multipath $map topology Affiche la topologie d'un périphérique multipath spécifié par $map.
list|show wildcards Affiche le format wildcard utilisé dans les commandes interactives
list|show config Affiche la configuration actuelle
List|show blacklist Affiche les règles blacklist courantes
list|show devices Affiche tous les périphériques block par nom et s'il sont blacklistés ou non
list|show status Affiche le nombre de vérificateurs de chemin dans chaque état possible, le nombre de chemins monitorés, et si multipathd gère actuellement un uevent
list|show daemon Affiche l'état du service multipathd
add path $path Ajoute un chemin à la liste des chemins monitorés. $path est tel que listé dans /sys/block
remove|del path $path Arrête de monitorer un chemin
add map|multipath $map Ajoute un périphérique multipath à la liste des périphériques monitorés. $map peut être un périphérique dm tel que listé dans /sys/block, un alias, ou un uid.
remove|del map|multipath $map Arrête de monitorer un périphérique multipath
resize map|multipath $map Redimensionne $map à la taille donnée
switch|switchgroup map|multipath $map group $group Force un périphérique multipath à passer dans un groupe de chemin spécifique. $group est l'index du groupe de chemin, en commençant à 1
reconfigure Reconfigure les multipaths
suspend map|multipath $map Met la $map en pause
resume map|multipath $map Relance une $map en pause
reset map|multipath $map Réassigne des tables dm existants en utilisant le périphérique multipath au lieu de ses chemins
reload map|multipath $map Recharge un périphérique multipath
fail path $path Met le chemin $path à l'état échoué
reinstate path $path Réactive un $path à l'état échoué
disablequeueing maps|multipaths Désactive la queue dans tous les périphériques multipath
restorequeueing maps|multipaths Réactive la queue dans tous les périphériques multipath
disablequeueing map|multipath $map Désactive la queue sur le $map
restorequeueing map|multipath $map Réactive la queue dans le $map
forcequeueing daemon Force multipathd en mode queue_without_daemon pour que la queue no_path_rethy ne se désactive pas quand le service s'arrête
restorequeueing daemon Restaure le mode queue_without_daemon configuré
map|multipath $map setprstatus Active la gestion de réservation persistante sur $map
map|multipath $map unsetprstatus Désactive la gestion de réservaion persistante sur $map
map|multipath $map getprstatus Affiche le status de la gestion de réservation persistante sur $map
quit|exit Quitter la session interactive
shutdown Stop multipathd

Intégration système

   Compilé avec le support systemd, 2 fichiers de service systemd sont installés, multipathd.service et multipathd.socket. Ce dernier instruit systemd d'intercepter le socket de commande CLI, pour que tout appel à l'interface CLI démarre le service si nécessaire. multipathd.service gère les définitions pour contrôler le service. Le service lui-même utilise l'interface sd_notify(3) pour communiquer avec systemd. Les mots clé suivant sont reconnus:

WatchdogSec= Active le watchdogSec interne à systemd. multipath envoie des notifications via sd_notify(3) à systemd pour réinitialiser le watchdog. les paramètres polling_interval et max_polling_interval sont remplacés par les paramètres watchdog.
OOMScoreAdjust= Remplace le mécanisme d'ajustement OOM interne
LimitNOFILE= Remplace le paramètre max_fds
^
12 octobre 2016

htmlpdflatexmanmd




multipath.conf

multipath.conf

Fichier de configuration pour multipath

   Chaque section contient un ou plusieurs attributs ou sous-sections. Les mots clé reconnus pour les attributs ou sous-sections dépendent de la section dans laquelle elles se trouvent. Les sections suivantes sont reconnues:

        defaults Cette section définis les valeurs par défaut pour les attributs qui sont utilisé quand aucune valeur n'est donnée dans le périphérique approprié ou de nom de section
        blacklist Définis quels périphériques devraient être exclus de la découverte de topologie multipath
        blacklist_exceptions Définis quels périphérique devraient être inclus dans la découverte de topologie multipath, même s'ils sont listés dans la section blacklist
        multipaths Définis les topologies multipath. Elles sont indexées par un WWID (Word Wide Identifier)
        devices Définis les paramètres spécifique à un périphérique
        overrides Définis les valeurs pour les attributs qui devraient remplacer les paramèters spécifique au périphérique pour tous les périphériques

Section defaults

verbosity Niveau de verbosité. (de 0 à 6, défaut: 2)
polling_interval Interval entre 2 vérifications de chemin, en seconde. Pour un fonctionnement correcte, l'interval entre les vérifications augmente graduellement jusqu'à max_polling_interval. Cette valeur sera remplacée par le paramètre WatchdogSec dans multipathd.service si systemd est utilisé. (défaut: 5).
max_polling_interval Interval maximum entre 2 vérifications de chemin, en secondes. Défaut: 4 * polling_interval
reassign_maps Active le réassignement des mappages device-mapper. Avec cette option, multipathd remap les mappages DM pour continuellement pointer vers un périphérique multiple, et non les périphériques block sous-jacent. Défaut: no
multipath_dir Répertoire où les objets partagés sont stockés. Défaut: /lib[64]/multipath/
path_selector Chemin par défaut pour l'algorithme à utiliser. Généralement offert par le kernel:

        round-robin 0 Boucle tout chemin dans le groupe de chemin, envoyant la même quantité d'E/S dans chaque
        queue-length 0 Envoie le prochain pool d'E/S sur le chemin ayant le moins de traitement E/S en cours
        service-time 0 Choisi le chemin pour le prochain pool d'E/S basé sur sur la quantité de traitement d'E/S dans le chemin et sa bande passante relative.

path_grouping_policy Stratégie de groupement de chemin par défaut à appliquer aux multipaths non-spécifiés:

        failover On chemin par groupe de priorité
        multibus Tous les chemins dans un groupe de priorité
        group_by_serial Un groupe de priorité par numéro de série
        group_by_prio Un groupe de priorité par valeur de priorité.
        group_by_node_name Un groupe de priorité par nom de nœud cible

uid_attribute Attribut udev fournissant un identifiant unique de chemin
prio Le nom de la routine de priorité de chemin. La routine spécifiée devrait retourner une valeur numérique spécifiant la priorité relative de ce chemin. Actuellement, les routines suivantes sont implémentées:

        const Retourne une priorité constante de 1
        sysfs Utilise les attributs sysfs access_state et preferred_path pour générer la priorité de chemin. Accepte l'option exclusive_pref_bit
        emc dépendant du hardware. Génère la priorité de chemin pour les array de classe DGC
        alua dépendant du hardware. Génère la priorité de chemin basé sur les paramètres SCSI-3 ALUA
        ontap dépendant du hardware. Génère la priorité de chemin pour la classe RDAC LSI/Engenio/NetApp
        hp_sw dépendant du hardware. Génère la priorité de chemin pour les arrays HP/COMPAQ/DEC HSG80 et MSA/HSV
        hds dépendant du hardware. Génère la priorité de chemin pour les arrays Hitachi HDS Modular
        random Génération aléatoire entre 1 et 10
        weightedpath Génère la priorité de chemin basé sur l'expression régulière et la priorité fournie come argument nécessite prio_args

prio_args Arguments à passer à la fonction prio
features Spécifie des fonctionnalités device-mapper à utiliser. La syntaxe est num list ou num est le numéro, entre 0 et 6, des fonctionnalités dans list. Les valeurs possible pour liste sont:

        queue_if_no_path Met en queue si aucun chemin n'est actif
        no_partitions Désactive la génération de partitions automatique via kpartx
        pg_init_retries Nombre de retentatives pg_init, doit être entre 1 et 50
        pg_init_delay_msecs Nombre de secondes avant une retentative pg_init, doit être entre 0 et 60000

path_checker Méthode par défaut à utiliser pour déterminer les états de chemin. Les valeurs possibles sont:

        tur Émet une commande TEST UNIT READY au périphérique
        emc_clarification dépendant du hardware. requête la page spécifique EVPD 0xC0 DGC/EMC pour déterminer l'état de chemin pour les arrays CLARiiON CX/AX et EMC VNX
        hp_sw dépendant du hardware. Vérifie l'état de chemin pour les arrays HP/COMPAQ/DEC HSG80 et MSA/HSV
        rdac dépendant du hardware. Vérifie l'état de chemin pour la classe RDAC LSI/Engenio/NetApp
        cciss_tur dépendant du hardware. Vérifie l'état de chemin pour les contrôleurs HP/COMPAQ Smart Array(CCISS)

alias_prefix Préfix user_friendly. Défaut: mpath
failback Indique comment gérer les erreurs de groupe de chemin:

        immediate failback immédiatement au chemin du groupe à la priorité la plus élevée qui contient des chemins actifs.
        manual N'effectue pas de failback automatique
        followover N'effectue un failback automatique quand quand le premier chemin d'un pathgroup devient actif. Cela permet d'empêcher un nœud d'être rejeté quand un autre nœud demande le failover
        values › 0 Défère le failback (temps en secondes)

rr_min_io Nombre d'E/S à route dans le chemin avant de basculer dans le suivant dans le même groupe de chemin. Uniquement pour le multipath basé sur BIO. Défaut: 1000
rr_min_io_rq Nombre de requêtes d'E/S à router vers un chemin avant de basculer vers le suivant dans le même groupe de chemin. Uniquement pour les requêtes basées sur multipath. Défaut: 1
max_fds Nombre maximum de descripteurs de fichier qui peuvent être ouverts par multipath et multipathd. 'max' prend la valeur dans /proc/sys/fs/nr_open. Si non définis, utilise open_fds du processus appelant. généralement 1024. Pour plus de sécurité devrait être le nombre max de chemins + 32, si ce nombre est supérieur à 1024. Défaut: max
rr_weight à priorities, le configurateur multipath assigne un poid de chemin tel que "path prio * rr_min_io". peut être priorities ou uniform
no_path_retry Spécifie le nombre de retentatives jusqu'à désactiver la queue, ou fail pour échouer immédiatement. queue ne stop jamais la queue. Si non définis, aucune queue n'est tentée
queue_without_daemon à no, quand multipathd stoppe, la queue est désactivée pour tous les périphériques. Utile pour les périphériques qui définissent no_path_retry. Si une machine s'éteint alors que tous les chemins sont down, il est possible de bloquer en attende d'E/S du périphérique après que multipathd ai été stoppé. Sans multipathd, l'accès aux chemins ne peut être restauré, et le kernel ne peut pas indiquer de stopper la queue. Défaut: no
checker_timeout Spécifie le timeout à utiliser pour la vérification de chemin et es prioritiseurs qui émettent des commandes SCSI avec un timeout explicit. Défaut: /sys/block/sd‹x›/device/timeout
flush_on_last_del À yes, multipathd désactive la queue quand le dernier chemin vers un périphérique a été supprimé. Défaut: no
user_friendly_names À yes, en utilisant le fichier /etc/multipath/bindings pour assigner de manière persistante et unique un alias au multipath, sous la forme mpath‹n›. À no, utilise le wwid comme alias.
fast_io_fail_tmo Nombre de secondes d'attente de la couche SCSI après qu'un problème ait été détecté sur un port distant FO avant d'échouer les E/S sur ce port. Devrait être inférieur à dev_loss_tmo. Défaut: 5
dev_loss_tmo Nombre de secondes d'attente de la couche SCSI après qu'un problème ait été détecté sur un port distant FO avant de le supprimer du système. 'infinity' définis à la valeur max (2147483647 secondes, ou 68ans). Il sera automatiquement ajusté à l'interval no_path_retry addentry articles autoadd autofind autoprod createalpha createbeta createdb createprod findentry fullpowa generator.php genhtml genman genmd gentex html insert man md pdf regen setfor setfor2 sql temp temp-new-pc tex threads ToDo polling_interval si un nombre de tentatives est donné dans no_path_retry et que l'interval de retentative qlobal est supérieur à dev_loss_tmo. Linux définis cette valeur à 300 si fast_io_fail_tmo n'est pas définis. Défaut: 600
bindings_file Chemin complet du fichier binding à utiliser quand l'option user_friendly_names est définis.
wwids_file Chemin complet du fichier eds WWID, utilisé pour garder une trace des WWID pour les LUN qui ont été créés dans le passé
log_checker_err À 'once', multipathd log la première erreur de vérification de chemin au niveau 2, et les autres erreur au niveau 3 jusqu'à ce que le périphérique soit restauré. À 'always', multipathd logs toujours au niveau 2
reservation_key Clé de réservation d'action du service utilisé par mpathpersist. Il doit être définis pour tous les périphériques multipath utilisant les réservation persistantes, et doit être identique au champ RESERVATION KEY du paramètre PERSISTENT RESERVE OUT.
retain_attached_hw_handler À yes, si la couche SCSI a déjà attaché un hardware_handler au périphérique multipath, multipath ne force pas le périphérique à utiliser celui spécifié dans ce fichier de configuration. Défaut: yes
detect_prio À yes, multipath tente de détecter si le périphérique supporte SCSI-3 ALUA. Si c'est le cas, le périphérique utilisera automatiquement le prioritizer sysfs si les attributs access_state et preferred_path sont supportés, ou le prioritiseur alua le cas échéant.
force_sync À yes, multipathd Vérifie les chemin en mode sync uniquement. Cela signifie que seul un vérificateur tourne à la fois, utile quand les vérificateurs tournant en parallèle créent une surchage CPU.
strict_timinig À yes, multipathd démarre une nouvelle boucle de vérification de chemin après exactement 1 seconde, pour que chaque vérification de chemin se produise exactement à polling_interval secondes. Si les systèmes surchargés, les vérification peuvent prendre plus d'une seconde
deferred_remove À yes, multipathd déferre la suppresion au lieu d'une suppression régulière quand le dernier chemin a été supprimé. Cela signifie que si le périphérique continue à être utilisé, il sera libéré quand le dernier utilisateur le fermera.
partition_delimiter Non définis, quand multipath renomme un périphérique, il agit simplement comme kpartx. ajoute seulement un 'p' aux noms se terminant dans un nombre. Si définis, multipath agit comme "kpartix -p" et ajoute toujours un délimiteur
config_dir Si définis, multipath recherche dans ce répertoire pour des fichiers .conf, et y lit les informations de configuration, tout comme /etc/multipath.conf.
delay_watch_checks › 0, multipathd recherche les chemins qui sont devenus récemment valides durant ce délai.
delay_wait_checks › 0, quand un périphérique qui est récemment revenu online échoue de nouveau dans le délai delay_watch_checks, la prochaine fois qu'il revient online il sera marqué et retardé, et ne sera pas utilisé jusqu'à ce qu'il ait passé ces vérification
find_multipaths À yes, au lieu de tenter de créer un périphérique multipath pour chaque chemin non-blacklisté, multipath créé seulement un périphérique si une des 3 conditions sont rencontrées: 1) il y a au moins 2 chemins non-blacklistés avec le même WWID, 2) l'utilisateur force manuellement la création en spécifinat un périphérique avec la commande multipath, ou 3) un chemin a le même wwid précédemment créé. Défaut: no
uxsock_timeout timeout CLI reçu en ms. Défaut: 1000
retrigger_tries Nombre de fois que multipathd tente de gérer un uevent pour obtenir le WWID. Défaut: 3
retrigger_delay Définis le délai, en secondes, d'attente entre les triggers. Défaut: 10
missing_uev_wait_timeout Contrôle le délai d'attente de multipathd après qu'un nouveau périphérique multipath soit créé, pour reçevoir un évènement de changement de udev pour ce périphérique, avant d'activer automatiquement les reloads de périphérique. Défaut: 30

Section blacklist

devnode expression régulière des périphériques à exclure
wwid Le wwid d'un périphérique
property Expression régulière d'une propriété udev à exclure
device Sous-section pour la description d'un périphérique. Accepte les mots-clé vendor et product

Section blacklist

devnode expression régulière des périphériques à inclure
wwid Le wwid d'un périphérique
property Expression régulière d'une propriété udev à inclure
device Sous-section pour la description d'un périphérique. Accepte les mots-clé vendor et product

Section multipaths

multipath Sous-section décrivant un multipath

        wwid Index du conteneur
        alias nom symbolique pour le mappage multipath
        path_grouping_policy
        path_selector
        prio
        prio_args
        failback
        rr_weight
        no_path_retry
        rr_min_io
        rr_min_io_rq
        flush_on_last_del
        features
        reservation_key
        user_friendly_names
        deferred_remove
        delay_watch_checks
        delay_wait_checks Identiques à la section defaults

Section devices

device Sous-section décrivant un périphérique

        vendor Identifiant de vendeur
        product Identifiant de produit
        revision Identifiant de révision
        product_blacklist Chaîne à blacklister pour ce vendeur
        alias_prefix Préfix user_friendly à utiliser pour ce type de périphérique
        hardware_handler hardware handler à utiliser pour ce type de périphérique:

                emc DGC class arrays as CLARiiON CX/AX and EMC VNX
                rdac LSI/Engenio/NetApp RDAC class
                hp_sw HP/COMPAQ/DEC HSG80 and MSA/HSV arrays
                alua SCSI-3 ALUA compatible arrays

        path_grouping_policy
        uid_attribute
        path_selector
        path_checker
        prio
        prio_args
        features
        failback
        rr_weight
        no_path_retry
        rr_min_io
        rr_min_io_rq
        fast_io_fail_tmo
        dev_loss_tmo
        flush_on_last_del
        retain_attached_hw_handler
        detect_prio
        deferred_remove
        delay_watch_checks
        delay_wait_checks Options identiques à la section defaults

Section overrides

path_grouping_policy
uid_attribute
getuid_callout
path_selector
path_checker
alias_prefix
features
prio
prio_args
failback
rr_weight
no_path_retry
rr_min_io
rr_min_io_rq
flush_on_last_del
fast_io_fail_tmo
dev_loss_tmo
user_friendly_names
retain_attached_hw_handler
detect_prio
deferred_remove
delay_watch_checks
delay_wait_checks Options identiques à la section devices ou defaults
^
12 octobre 2016

htmlpdflatexmanmd




kpartx

kpartx

Créer des maps de périphérique depuis des tables de partition

   Cet outil, dérivé de partx, lit les tables de partitions sur le périphérique spécifié et créé des maps de périphérique sur les segments de partition détectés.

OPTIONS

-a Ajoute des mappages de partition
-r Mappages lecture seule
-d Supprimer des mappages de partition
-u Mettre à jours des mappages de partition
-l Liste les mappages de partition qui aurait été ajouté avec -a
-p Définis le délimiteur de numéro de partition
-f Force la création des mappages
-g Force la table de partition GUID
-v mode verbeux
-s Mode syncho. Ne retourne pas tant que les partitions ne sont pas créées

Exemples

Monter toutes les partitions dans une image raw
kpartx -av disk.img
cela affichera:
loop3p1 : 0 20964762 /dev/loop3 63
Pour vérifier la partition:
fsck /dev/mapper/loop3p1
Pour supprimer le périphérique
kpartx -d disk.img
^
01 juillet 2016

htmlpdflatexmanmd




keys-ecryptfs

keys-ecryptfs

Système de fichier stacké à chiffrement transparent

   ecryptfs est un système de fichier stacké qui chiffre et déchiffre de manière transparente chaque fichier en utilisant une clé de chiffrement de fichier (FEK) générée aléatoirement.

   Chaque FEK est en retour chiffré avec une clé de chiffrement de clé de chiffrement de fichier (FEFEK) soit dans l'espace kernel ou en espace utilisateur avec un service appelé ecryptfsd. Dans le premier cas, l'opération est effectuée directement par le cryptoAPI du kernel en utilisant une clé, la FEFEK, dérivée d'une passphrase de l'utilisateur; dans l'autre cas, la FEK est chifrée par ecryptfsd avec l'aide de librairies externes pour supporter d'autres mécanismes comme les clés publiques, PKCS#11 et TPM.

   La structure de données définie par ecryptfs pour contenir les informations requises pour le déchiffrement FEK est appelé le jeton d'authentification et , actuellement, peut être stocké dans une clé kernel de type 'user', inséré dans la session de l'utilisateur par l'utilitaire userspace mount.ecryptfs fournis avec le paquet ecryptfs-utils

   Le type de clé encrypted a été étendue avec l'introduction du nouveau format ecryptfs pour être utilisé en conjonction avec le système de fichier ecryptfs. Les clé chiffrées au nouveau format stockent un jeton d'authentification dans son payload avec un FEFEK générée aléatoirement par le kernel et protégé par la clé maître.

   Pour éviter les attaques plaintext, le 'datablob' obtenu via les commandes 'keyctl print' ou 'keyctl pipe' ne contiennent pas tout le jeton d'authentification, dont le contenu est connu, mais seulement la FEFEK sous forme chiffrée.

   Le système de fichier ecryptfs peut réellement bénéficier de l'utilisation de clé chiffrées car les clés requises peuvent être générées de manière sécurisée par un administrateur et fournis au boot une fois la clé de confiance fournie pour effectuer le montage dans un environnement contrôlé. Un autre avantage est que la clé n'est pas exposée aux traitements de logiciels malicieux, parce qu'elle est disponible en clair seulement au niveau du kernel.

Utilisation

keyctl add encrypted name "new ecryptfs key-type:master-key-name keylen" ring
keyctl add encrypted name "load hex_blob" ring
keyctl update keyid "update key-type:master-key-name"
name:= '‹ 16 hexadecimal characters ›'
key-type:= 'trusted' | 'user'
keylen:= 64

Exemple d'utilisation de clé chiffrée avec le système de fichier ecryptfs

Créer un clé chiffrée "1000100010001000" de 64bits de long au format ecryptfs et la sauver avec une clé utilisateur précédemment chargée "test":
keyctl add encrypted 1000100010001000 "new ecryptfs user:test 64" @u 19184530
keyctl print 19184530
ecryptfs user:test 64 490045d4bfe48c99f0d465fbbbb79e7500da954178e2de0697
dd85091f5450a0511219e9f7cd70dcd498038181466f78ac8d4c19504fcc72402bfc41c2
f253a41b7507ccaa4b2b03fff19a69d1cc0b16e71746473f023a95488b6edfd86f7fdd40
9d292e4bacded1258880122dd553a661
keyctl pipe 19184530 › ecryptfs.blob
Monter un système de fichier ecryptfs avec la clé chiffrée créée "1000100010001000" dans le répertoire /secret:
mount -i -t ecryptfs -oecryptfs_sig=1000100010001000,ecryptfs_cipher=aes,ecryptfs_key_bytes=32 /secret /secret
^
22 mai 2016

htmlpdflatexmanmd




mdadm

mdadm

Gestion de périphériques raid

   Les périphériques RAID logiciel Linux sont implémentés via le pilote md (Multiple Devices). Actuellement, linux supporte les périphériques LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10, MULTIPATH, FAULTY, et CONTAINER

MULTIPATH N'est pas un mécanisme raid logiciel, mais implique des périphériques multiples: chaque périphérique est un chemin vers un stockage physique. Il ne devrait plus être utilisé
FAULTY N'est pas un mécanisme raid, et implique seulement 1 périphérique. Il fournis un couche sur un vrai périphérique qui peut être utilisé pour injecter des fautes
CONTAINER est différent, c'est une collection de périphériques qui sont gérés comme un set. C'est similaire à un jeu de périphériques connectés à un contrôleur RAID hardware. Le jeu de périphériques peut contenir plusieurs RAID, chacun utilisant certains ou tous les blocks dans certains périphériques du set. Par exemple, 2 périphériques d'un set de 5 périphériques peuvent former un RAID 1 en utilisant tout l'espace. Les 3 autres peut avoir un raid5 utilisant la moitie de chaque périphérique, et un raid0 pour la seconde moitié.

Modes

   mdadm a de nombreux modes d'opérations:

assemble assemble les composants d'un array précédemment créé en un array actif.
build Construit un tableau sans superblocks.
create Créé un nouvel array avec superblocks.
follow
monitor supervise un ou plusieurs périphériques md et agit sur les changements d'état.
grow Agrandit ou réduit un array.
incremental assembly Ajoute un périphérique dans un array.
manage gérer un array, comme ajouter un nouveau spare, et supprimer a périphérique
misc mode qui fait toutes les autres opérations sur les array actifs tel qu'effacer les anciens superblocks.
auto-detect Demande au kernel d'activer tout les arrays auto-détectés

Options pour sélectionner un mode

-A, --assemble assemble un array existant
-B, --build Construit un array sans superblocks
-C, --create Créé un nouvel array
-F, --follow, --monitor Sélectionne le mode monitor
-G, --grow Change la taille d'un array actif
-I, --incremantal Ajoute/supprime un périphérique à un array
--auto-detect Demande au kernel de démarrer les array auto-détectés. ne fonctionne que si md est compilé dans le kernel (pas en module)

   Si un périphérique est donné avant toute options, ou si la première option est --add, --re-add, --add-spare, --fail, --remove, ou --replace, le mode Manage est assumé.

Options non spécifique au mode

-v, --verbose mode verbeux
-q, --quiet Mode silencieu
-f, --force Force l'action
-c, --config= Spécifie le fichier de configuration ou le répertoire. Défaut: /etc/mdadm/mdadm.conf et /etc/mdadm/mdadm.conf.d/
-s, --scan Scanne la configuration ou /proc/mdstat pour les informations manquantes.
-e, --metadata= Déclare de style de métadonnées de raid à utiliser. Défaut: 1.2 pour --create:

        0, 0.90 Utilise le format original 0.90. Ce format limite les array à 28 périphériques, et 2To.
        1, 1.0, 1.1, 1.2 default Utilise le nouveau format.
        ddf Utilise le format DDF (Disk Data Format) définis par SNIA. En créant un array DDF, un CONTAINER est créé.
        imsm Utilise le format Intel Matrix Storage Manager. Cela créé un CONTAINER géré de manière similaire à DDF.

--homehost* Remplace tout paramètre HOMEHOST dans la configuration et fournis l'identité de l'hôte qui devrait être considéré le home de tous les arrays. cet homehost est enregistré dans les métadonnées.
--prefer= Quand mdadm a besoin d'afficher le nom d'un périphérique il le trouve normalement dans /dev. Quand un chemin est donné avec cette option, mdadm va préférer un nom plus long s'il contient un composant. par exemple --prefer-by-uuid va préférer un nom dans /dev/by-uuid/
--home-cluster= Spécifie le nom du cluster pour le périphérique md. Le périphérique md peut être assemblé seulement dans le cluster qui match le nom spécifié.

Options pour create, build, ou grow

-n, --raid-devices= Spécifie le nombre de périphériques actifs dans l'array, incluant les spare et ceux manquants
-x, --spare-devices= Spécifie le nombre de périphériques spare dans l'array initial
-z, --size= Espace en Kio à utiliser dans chaque disque dans le raid 1/4/5/6. Doit être un multiple de la taille de chunk, et doit laisser 128Kb à la fin du disque pour le superblock RAID.
-Z, --array-size= C'est seulement avec' --grow et son effet n'est pas persistant. Avec cette option, l'array paraît plus petit qu'il ne l'est.
-c, --chunk= Spécifie la taille de chunk en KiO. Défaut: 512KiO. Pour s'assurer de la compatibilité avec les anciennes versions, le défaut à la construction d'un array sans métadonnées persistantes est de 64Ko. C'est seulement significatif pour les raid 0/4/5/6/10. les raid 4/5/6/10 nécessitent un taille en puissance de 2. Dans tous les cas, doit être un multiple de 4Ko.
--rounding Spécifie le facteur d'arrondissement pour un array linéaire. La taille de chaque composant sera arrondi à un multiple de cette taille. Défaut: 0
-l, --level= Définis le niveau de raid. avec --create les options sont: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, raid10, 10, mulitpath, mp, faulty, container. Avec --build: linear, stripe, raid0, 0, raid1, multipath, mp, faulty.
-p, --layout=, --parity= Configure le détails de la couche de données pour les raid 5/6/10, et contrôle les modes d'erreur pour faulty. pour un raid5: left-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs. Défaut: left-symmetric. Il est également possible de forcer un raid5 à utiliser une couche raid4 avec parity-first ou parity-last. Pour les raid5 DDF, ddf-zero-restart, ddf-N-restart et ddf-N-contitue. Ces layouts sont également disponible pour le raid6. 4 layouts sont fournis en étape intermédiaire pour convertir un raid5 en raid6: left-symmetric-6, right-symmetric-6, left-asymmetric-6, right-asymmetric-6, et parity-first-6.

           Pour faulty, les options sont: write-transient, wt, read-transient, rt, write-persistent, wp, read-persistent, rp, write-all, read-fixable, rf, clear, flush, none. Chaque mode d'erreur peut être suivi par un nombre, qui est utilisé comme période entre la génération d'erreurs. Pour les raid10: n, o, ou f, suivi par un nombre. Défaut: n2:

        n (near copies) Plusieurs copie d'un block de données sont à un offset similaire dans différents périphériques
        o (offset copies) Au lieur de dupliquer les chunks dans un stripe, tous les stripes sont dupliqués mais avec une rotation d'un périphérique pour que les blocks dupliqués soient sur différents périphériques.
        f (far copies) Plusieurs copies ont des offsets différents. voir md(4) pour plus de détails.

-b, --bitmap= Spécifie un fichier où stocker un bitmap. Ce fichier ne devrait pas exister sauf si --force est donné. Le même fihier devrait être donné en assemblant l'array. Si le mot internal est donné, le bitmap est stocké avec les métadonnées dans l'array, et donc est répliqué sur tous les périphériques Si le mot none est donné avec le mode --grow, tout bitmap présent est supprimé. Is le mot clustered est donné, l'array est créé pour un environnement clusterisé Un bitmap est crée pour chaque nœud comme définis par le paramètre --nodes et sont stockés en interne
--bitmap-chunk= Définis la taille de chunk du bitmap. Chaque bit correspond à autant de Ko de stockage. En utilisant un bitmap basé sur un fichier, le défaut est d'utiliser la taille la plus petite qui fait au moins 4 et au plus 2^21 chunks
-W, --write-mostly Les périphériques listés dans une commande --build, --create, --add seront flaggés en write-mostly. raid1 uniquement et signifie que le pilote md évite de lire dans ces périphériques si possible. Peut être utile pour un mirroir sur un réseau lent.
--write-behind= Active le mode write-behind (raid1). Si un argument est spécifié, il définis le nombre max d'écritures arriéré permis. Défaut: 256. un bitmap write-extent est requis, et ce mode n'est tenté que sur les disques marqués write-mostly.
--assume-clean Dit à mdadm que l'array pré-existant est correct. peut être utile en tentant une récupération après une erreur majeur
--backup-file= Nécessaire avec --grow utilisé pour augmenter le nombre de périphériques dans un raid 5 ou 6 s'il n'y a pas de disque spare disponible, ou pour réduire, changer le niveau de raid ou le layout.
--data-offset= Les array avec des métadonnées 1.x peut laisser un espace entre le début d'un périphérique et le début des données. Normalement le début des données est calculé automatiquement, mais cette option permet de le spécifier manuellement
--continue Cette option est complémentaire à l'option --freeze-reshape pour assembly. Il est nécessaire quand l'opération --grow est interrompue et n'est pas redémarré automatiquement à cause de l'utilisation de --freeze-reshape durant l'assemblage de l'array.
-N, --name= Définis un nom pour l'array. Seulement effectif en créant un array avec un superblock version 1, ou un array dans un conteneur DDF.
-R, --run Insiste pour que mdadm lance l'array, même si certains composants apparaîssent actif dans un autre array ou système de fichier. Normalement, mdadm demande confirmation pour cela, cette option suprime la question.
-f, --force Insiste pour que mdadm accepte la géométrie et le layout spécifié sans question.
-o, --readonly Démarre l'array en mode lecture seule
-a, --auto{=yes,md,mdp,part,p}{NN} Instruit mdadm sur la manière de créer un fichier de périphérique si nécessaire, en allouant possiblement un numéro mineur non-utilisé. "md" utilise un array non-partitionnable, "mdp", "part" ou "p" utilise un array partitionnable. "yes" nécessite que le périphérique md ait le format standard. Depuis mdadm 3.0, la création de périphérique est effectuée par udev, donc cette option n'est pas nécessaire
-a, --add Peut être utilisé en mode grow dans 2 cas. Il l'array cible est un array linear, --add peut être utilisé pour ajouter un ou plusieurs périphériques. Si l'option --raid-disks est utilisé pour augmenter le nombre de périphériques dans un array, --add peut être utilisé pour ajouter des périphériques supplémentaire à inclure dans l'array.
--nodes Ne fonction que lorsque l'array est pour un environnement clusterisé. Il spécifie le nombre max de nœuds dans le cluster qui vont utiliser ce périphérique simultannément. Défaut: 4
--write-journal Spécifie un périphérique journal pour l'array raid 4/5/6. Devrait être un SSD avec une durée de vie raisonnable

Options pour l'assemblage

-u, --uuid= uuid de l'array à assembler. Les périphériques qui n'ont pas cet uuid sont exclus
-m, --super-minor= numéro mineur du périphérique créé. Les périphériques qui n'ont pas ce numéro mineur sont exclus.
-N, --name= Spécifie le nom de l'array à assembler.
-f, --force Assemble l'array même si les métadonnées dans certains périphériques apparaîssent périmés.
-R, --run Tente de démarrer l'array même si moins de disques sont donné que la dernière fois qu'il a été actif.
--no-degraded Inverse de --run. Ne démarre que si tous les disques attendus sont présents.
-a, --auto{=yes,md,mdp,part,p}{NN} Voir plus haut
-b, --bitmap= Spécifie le fichier bitmap qui a été donné à la création de l'array.
--backup-file= Si utilisé pour re-définir un array (changer le nombre de périphériques, ou la taille de chunk) et que le système crash durant la section critique, cette option doit également être présent avec --assemble pour permettre à des données possiblement corrompus d'être restaurées.
--invalid-backup Si le fichier nécessaire pour l'option ci-dessus n'est pas disponible, un fichier vide peut être donné avec cette option pour indiquer que le fichier backup est invalide. Dans ce cas les données qui étaient ré-arrangés au moment du crash peuvent être perdus irrévocablement, mais le reste de l'array peut être récupérable. Cette option devrait être utilisée quand dernier recours.
-U, --update= Met à jours le superblock dans chaque périphérique en assemblant l'array. L'argument donné peut être (sparc2.2, summaries, uuid, name, nodes, homehost, home-cluster, resync, byteorder, devicesize, no-bitmap, bbl, no-bbl, metadata, ou super-minor):

        sparc2.2 Ajuste le superblock d'un array qui a été sur une machine Sparc tournant sur un Kernel 2.2 patché.
        super-minor Met à jours le champ 'preferred minor' dans chaque superblock pour correspondre au numéro mineur de l'array à assembler.
        uuid Change l'uuid de l'array
        name Change le nom de l'array stocké dans le superblock. (superblock V1 uniquement)
        nodes Change les nœuds de l'array comme stocké dans le superblock bitmap. Ne fonctionne que pour les environnements clusterisés
        homehost Change le homehost enregistré dans le superblock. Pour les superblocks V0, c'est identique à uuid, pour V1, met à jours le nom
        home-cluster Change le nom du cluster. Ne fonctionne que pour les environnements clusterisés
        resync Marque l'array 'dirty' signifiant qu'une redondance dans l'array peut être incorrect, et force un resync
        byteorder Permet de déplacer l'array entre des machines avec un byte-order différent.
        summaries Corrige les sommaires dans le superblock. (compteurs de périphériques total, fonctionnels, actifs, en erreur, et spare)
        devicesize S'applique au métadonnées 1.1 et 1.2, utile quand le périphérique a changé de taille.
        metadata Fonction avec les métadonnées 0.90 et va le convertir en v1.0. L'array ne doit pas être durty ni write-intent bitmap
        no-bitmap Peut être utilisé quand un array a un bitmap interne qui est corrompus. Ignore le bitmap interne
        bbl Réserve l'espace dans chaque périphérique pour une liste de blocks défectueux, de 4k vers la fin du disque.
        no-bbl Supprime toute réservation pour la liste de blocks défectueux. Si la liste contient des entrées, il échoue.

--freeze-reshape Utilisé dans les scripts de démarrage. Quand un array sous reshape est assemblé au boot, cette option stop le reshape après la section critique. Cela se produit avant l'opération de pivot du système de fichiers et évite de perdre le contexte du système de fichier. Le reshape peut être repris ultérieurement avec --continue de la commande grow.

Pour le mode Manage

-t, --test Sauf si une erreur sérieuse se produit, mdadm quitte avec le status 2 si aucun changements n'est fait dans l'array et 0 si au moins un changement a été fait.
-a, --add Périphériques listés à chaud. Si un périphérique apparaît avoir fait partie récemment d'un array, le périphérique est re-ajouté. En cas d'échec ou si le périphérique n'a jamais fait partie de l'array, le périphérique est ajouté comme hot-spare. Si l'array est dégradé, il démarre immédiatement la reconstruction des données sur ce spare.
--re-add Re-ajoute un périphérique qui a été précédemment supprimé de l'array. Si les métadonnées dans le périphérique reportent qu'il est un membre de l'array, et que le slot qui est utilisé est vacant, ce périphérique est ajouté à l'array à la même position. Cela va automatiquement récupérer les données de ce périphérique. Utilisé dans un array qui n'a pas de métadonnées, assume que la récupération basée sur bitmap est suffisante pour rendre le périphérique suffisamment consistant avec l'array. avec des métadonnées V1.x, peut être accompagné avec --update-devicesize, --update=bbl ou --update=no-bbl.
--add-spare Ajoute un périphérique spare. Similaire à --add excepté qu'il ne tente pas de --re-add avant.
-r, --remove Supprime les périphériques listés. Ils ne doivent pas être actifs.
-f, --fail, --set-faulty Marque les périphériques listés en faute.
--replace Marque les périphériques listés à remplacer. Tant qu'un spare est disponible, il reconstruit et remplace le périphérique marqué. C'est similaire à marquer le périphérique en faute, mais il reste en service durant le traitement de récupération.
--with Peut suivre une liste de périphériques --replace. Ces périphériques sont utilisés de préférence pour remplacer les périphériques. Ces périphériques doivent déjà être marqués spare dans l'array.
--write-mostly Les périphériques qui sont ajoutés ou re-ajoutés auront le flag 'write-mostly' mis. Seulement valide pour RAID1 et signifie que md évite toute lecture dans ces périphériques si possible
--readwrite Les périphériques qui sont ajoutés ou re-ajoutés auront le flag 'write-mostly' effacé.
--cluster-confirm Confirme l'existence du périphérique. Émis en réponse à une requête --add par un nœud dans un cluster. Quand un nœud ajoute un périphérique il envoie un message à tous les nœuds dans le cluster pour rechercher un périphérique avec un UUID. Cela traduit en une notification udev avec l'UUID du périphériques à ajouter et le numéro de slot. Le nœud reçevant doit acquiter ce message avec --cluster-confirm. Les arguments valides sont ‹slot›:‹devicename› dans le cas où le périphérique est trouvé ou ‹slot›:missing si non trouvé.

   Chacune de ces options nécessite que le premier périphérique listé est l'array sur lequel agir, et le reste sont les périphérique à ajouter, supprimer, marqué en faute, etc. les différentes opération peuvent être spécifiée pour différents périphériques (ex: mdadm /dev/md0 --add /dev/sda1 --fail /dev/sdb1 --remove /dev/sdb1 ).

   Si un array utilise un bitmap write-intent, les périphériques qui ont été supprimés peuvent être re-ajouté de manière à éviter une reconstruction complète et seulement mettre à jour les blocks qui ont été changés depuis qu'il a été supprimé. Pour les array avec des métadonnées persistantes (superblocks) c'est fait automatiquement. Pour les array créés avec --build, mdadm doit indiquer que ce périphérique a été supprimé récemment avec --re-add.

   Les périphériques peuvent seulement être supprimés d'un array s'ils ne sont pas actifs, par exemple, doivent être spare ou en faute. Pour supprimer un périphérique actif, il faut le marquer en faute avant.

Mode Misc

-Q, --query Examine un périphérique pour voir si c'est un périphérique md et si c'est un composant d'un array md.
-D, --detail Affiche les détails d'un ou plusieurs périphériques md
--detail-platform Affiche des détails sur les capacités RAID de la plateform (firmware/topologie hardware) pour un format de métadonnées donné. Sans argument, mdadm scanne tous les controleurs à la recherche de leur capacités. Sinon, mdadm ne regarde que le contrôleur spécifié par l'argument sous la forme d'un chemin absolus ou un lien (ex: /sys/devices/pci0000:00/0000:00:1f.2)
-Y, --export Avec --detail, --detail-platform, --examine, ou --incremental, la sortie est formatté en paire clé=valeur pour simpifier l'import dans l'environnement. MD_STARTED indique si un array a été démarré, qui peut inclure une raison. MD_FOREIGN indique si l'array est attendu sur cet hôte
-E, --examine Affiche le contenu des métadonnées stockés dans le(s) périphérique(s) spécifié(s). --examine s'applique aux périphériques qui sont des composants d'un array, alors que --detail s'applique à l'array actif.
--sparc2.2 Si un array a été créé sur une machine sparc avec un kernel 2.2 patché avec le support RAID, le superblock a été créé de manière incorrect, incompatible avec les kernel 2.4 et +. Cette option fix le superblock avant de l'afficher. Dans ce cas, on peut assembler avec --assemble --update=sparc2.2.
-X, --examine-bitmap Repporte les inforamtions sur le fichier bitmap. L'argument est soit un fichie bitmap externe, ou un composant array dans le cas d'un bitmap interne.
--examine-badblock Liste les blocks défectueux enregistrés dans un périphérique (métadata v1.x)
--dump=directory, --restore=directory Sauve les métadonnées d'une liste de périphériques, ou les restaure.
-R, --run Démarre un array partiellement assemblé. Si --assemble n'a pas suffisamment de périphériques pour démarrer l'array, cette option démarre l'array en mode dégradé.
-S, --stop Désactive un array
-o, --readonly Marque un array en lecture seule
-w, --readwrite Marque l'array en lecture écriture
--zero-superblock Si le périphérique contient un superblock md valide, le block est remplis de zéro. avec --force, le block œu ce superblock devrait être sera écrasé même s'il apparaît non valide
--kill-subarray= Si le périphérique est un conteneur et l'argument spécifie un sous-array inactif dans le conteneur, ce sous-array est supprimé. Supprimer tous les sous-array laisse un conteneur vide ou un superblock spare dans les disques. voir --zero-superblock pour supprimer complètement un superblock.
--update-subarray= Si le périphérique est un conteneur et l'argument spécifie un sous-array dans le conteneur, tente de mettre à jour le superblock doné dans le sous-array.
-t, --test Avec --detail, le code de sortie de mdadm est mis pour refléter le status du périphérique
-W, --wait Pour chaque périphérique md donné, attend la fin d'une resyncho, récupération, ou reshaping avant de quitter.
--wait-clean Pour chaque périphérique md doné ou chaque périphérique dans /proc/mdstat si --scan est donné, s'assure que l'array est marqué clean dès que possible.
--action= Définis le 'sync_action' pour tous les périphériques donné à idle, frozen, check ou repair. idle annule l'action en cours bien que certaines action vont redémarrer automatiquement. frozen annule l'action en cours et s'assur qu'aucune autre action ne démarre automatiquement.

Mode assemblage incrémental

--rebuild-map, -r Reconstruit le fichier de map (/run/mdadm/map) que mdadm utilise pour suivre les array actuellement assemblés
--run, -R Lance un array assemblé dès qu'un nombre minimum de périphériques sont disponibles.
--scan, -s avec -R, scan le fichier de map à la recherche d'array qui sont assemblés incrémentalement et tente de démarrer tous ceux qui ne sont pas déjà démarrés. Si un tel array est listé dans mdadm.conf comme nécessitant un bitmap externe, ce bitmap sera attaché avant.
--fail, -f Permet au système hotplug de supprimer les périphériques qui ont disparus complètement du kernel. Ils sont d'abord mis en faute, puis supprimés de l'array. Cela permet au périphérique en faute d'être automatiquement remplacé par un nouveau périphériques sans métadonnées s'il apparaît au chemin spécifié. Cette option est normallement définis seulement par un script udev.

Mode Monitor

-m, --mail Addresse mail où envoyer des alertes
-p, --program, --alert Programme à lancer quant un événements est détecté
-y, --syslog Tous les événements sont reportés via syslog. Les messages ont la facilité 'daemon'
-d, --delay Délay en seconde d'attente avant de resonder les arrays md. Défaut: 60 secondes. Il n'est pas nécessaire de réduire ce délai vu que le kernel alerte immédiatement mdadm en cas de changement.
-r, --increment mdadm génère des événements RebuildNN avec le % d'incrément donné
-f, --daemonise Lance mdadm en tâche de fond
-i, --pid-file quand mdadm est lancé en mode service, écris le pid du process dans le fichier spécifié
-1, --oneshot Vérifie les arrays seulement une fois. Cela génère des événements NewArray, DegradedArray et SparesMissing.
-t, --test Génère une alert TestMessage pour tout array trouvé au démarrage.
--no-sharing Inhibe la fonctionnalité pour déplacer les spares entre les arrays. Seul un processus de monitoring démarré avec --scan, mais sans ce flag est permis.

Mode ASSEMBLE

   Assemble un ou plusieurs arrays RAID depuis des composants pré-existants. Pour chaque array, mdadm doit connaître le périphérique md, l'identité de l'array, et des périphériques. Ils peuvent être trouvés de différentes manières.

   sans l'option --scan, le premier périphériques donné est le périphérique md. Avec --scan, tous les périphériques listés sont des périphériques md et un assemblage est tenté. Avec --scan, sans périphérique listé, tous les périphériques listés dans le fichier de configuration sont assemblés. Si aucun array n'est décris pas le fichier de configuration, les arrays qui peuvent être trouvé dans des périphériques non-utilisés seront assemblés

   Sans l'option --scan et avec exactement 1 périphérique donné, mdadm agit comme avec --scan et les informations d'identité sont extraits du fichier de configuration.

   L'identité peut être donné avec l'option --uuid, --name ou --super-minor.

   Les périphériques peuvent être donnés dans la commande --assemble ou dans le fichier de configuration. Seul les périphériques qui ont un superblock md contenant la bonne identité seront considérés.

   Le fichier de configuration est seulement utilisé s'il est explicitement donné avec --config ou requêté avec --scan. Dans ce cas, /etc/mdadm/mdadm.conf ou /etc/mdadm.conf est utilisé.

   si --scan n'est pas donné, le fichier de configuration sera seulement utilisé pour trouver l'identité d'un array

   Normallement l'array est démarré après qu'il soit assemblé. Cependant si --scan n'est pas donné et tous les disques attendu ne sont pas listés, l'array n'est pas démarré. Pour forcer l'array à être démarré dans ce cas, utiliser le flag --run

   Si udev est actif, mdadm ne créé pas d'entrée dans /dev, et laisse faire udev. Il enregistre les informations dans /run/mdadm/map qui permet à udev de choisir le nom correct. Si udev n'est pas configuré, mdadm créé lui-même les périphériques dans /dev. Dans ce cas, --auto peut être suffixé par un nombre correspondant au nombre de partitions à créer au lieu des 4 par défaut.

Auto Assemblage

   Quand --assemble est utilisé avec --scan et qu'aucun périphérique n'est listé, mdadm tente d'abord d'assembler tous les arrays listés dans le fichier de configuration. Si aucun array n'est listé dans la configuration, il recherche les périphériques disponibles à la recherche d'array et tente d'assembler ce qu'il trouve. Les array qui sont taggés comme appartenant à un homehost donné seront assemblés et démarrés normalement. Les array qui n'appartiennent pas à cet hôte sont démarrés en "read-auto" pour qui rien ne soit écrit dans ce périphérique.

   Si mdadm trouve un jeu consistant de périphériques qui semblent être dans un array, et si le superblock est taggé comme appartenant à l'hôte donné, il va automatiquement choisir un nom de périphérique et tenter d'assembler l'array. Si l'array utilise des métadonnées v0.90, le numéro mineur enregistré dans le superblock est utilisé pour créer un nom dans /dev/md/. Si l'array utilise des métadonnées v1, le nom dans le superblock est utilisé pour créer un nom dans /dev/md/.

   Ce comportement peut être modifié par la ligne AUTO dans mdadm.conf. Cette ligne peut indiquer que le type de métadonnées spécifique devrait ou non être automatiquement assemblé. Si un array est trouvé qui n'est pas listé dans mdadm.conf et a un format de métadonnées qui est refusé par la ligne AUTO, il ne sera pas assemblé. La ligne AUTO peut également exiger que tous les arrays identifiés comme appartenant à ce homehost devraient être assemblés sans regarder leur type de métadonnées.

   Note: L'auto-assemblage ne peut pas être utilisé pour assembler et activer certains array qui doivent être reshape. En particulier quand un backup-file ne peut pas être fournis, tout reshape qui nécessite un backup-file pour continuer ne peut pas être auto assemblé. Un array qui est agrandit et a passé la section critique peut être assemblée en utilisant l'auto-assemblage.

Build Mode

   Similaire à --create. La différence est qu'il créé un array sans superblock. Avec ces arrays il n'y a pas de différence entre la création initiale de l'array et l'assemblage dans l'array, excepté qu'il y a des données utiles dans le second cas.

   Le niveau peut être RAID0/1/10, multipath, ou faulty, ou un de leur synonymes. Tous les périphériques doivent être listés et l'array sera démarré une fois complet. Il est souvent approprié d'utiliser --assume-clean avec les raid1/10.

Create Mode

   Initialise un nouvel array md, associe certains périphériques avec lui, et active l'array. Le périphérique nommé n'existe normalement pas quand mdadm --create est lancé, mais sera créé par udev une fois l'array actif.

   Quand des périphériques sont ajoutés, ils sont vérifiés pour vois s'ils contiennent des superblocks RAID ou des systèmes de fichier. Ils sont également vérifiés pour voir si la variance dans la taille de périphérique excède 1%. Si une anomalie est constatée, l'array ne sera pas lancé automatiquement, bien que la présence de --run peut outrepasser cette précaution.

   Pour créer un array dégradé dans lequel certains périphériques sont manquants, donner simplement le mot 'missing' à la place du nom de périphérique. Cela laisse le slot correspondant vide dans l'array. Pour un raid4/5, au plus un slot peut être manquant, pour un raid6, au plus 2 slots peuvent être manquants. Pour un raid1, seul un périphérique a besoin d'être donné, tous les autres peuvent être manquant.

   En créant un array RAID5, mdadm créé automatiquement un array dégradé avec un disque spare, parce que créer le spare dans un array dégradé est généralement plus rapide que resynchroniser la parité dans un non-dégradé. Cette fonctionnalité peut être remplacée par l'option --force.

   En créant un array avec des métadonnées version 1 un nom pour l'array est requis. S'il n'est pas donné avec --name, mdadm en choisis un basé sur le dernier composant du nom du périphérique créé. Donc si /dev/md3 est créé, le nom 3 sera choisis. Si /dev/md/home est créé, home sera choisis.

   En créant une partition basée sur l'array, en utilisant mdadm avec des métadonnées v1.x, le type de partition devrait être 0xDA. Ce type permet une meilleur précision vu que l'utilisation d'autres (RAID auto-detect 0xFD, ou une partition Linux 0x83), peut créer des problèmes dans le cas de récupération d'array.

   Un nouvel array a normalement un UUID 128bits aléatoire assigné qui est unique. Il est possible de choisir l'UUID avec l'option --uuid.

   Si le type d'array support un bitmap write-intent, et si les périphériques dans l'array excèdent 100G, un bitmap write-intent interne sera automatiquement ajouté sauf si explicitement demandé avec l'option --bitmap. Dans ce pas l'espace pour un bitmap est réservé pour qu'il puisse être ajouté avec --grow --bitmat=internal.

   Si le type de métadonnées le supporte (v1.x), l'espace sera alloué pour stocker une liste de blocks défectueux.

   En créant un array avec un CONTAINER, on peut donner à mdadm soit la liste des périphériques à utiliser, ou simplement le nom du conteneur. Le premier cas permet de contrôler les périphériques à utiliser pour le raid. Le 2ème cas permet à mdadm de choisir automatiquement quels périphériques utiliser basé sur l'espace disponible.

   Les options de gestion générales qui sont valides avec --create sont:

--run Insiste pour démarrer l'array, même si des périphériques semblent être utilisés
--readonly démarre en lecture seule - pas encore supporté

Mode Manage

   Permet de gérer les périphérique dans un array. Il est possible d'effectuer plusieurs opération en une commande: mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 -a /dev/hda1, qui va d'abord marque /dev/hda1 en faute, puis le supprimer de l'array, et finallement l'ajouter comme spare. Seul 1 md peut être affecter par une simple commande.

   Quand un périphérique est ajouté à un array actif, mdadm vérifie pour voir s'il a des métadonnées qui spécifie s'il était récemment un membre de cet array. Si c'est le cas, it tente de ré-ajouter le périphérique. S'il n'y a pas eu de changements depuis qu'il a été supprimé, ou si l'array a un bitmap write-intent qui a été enregistré où les changements ont été faits, le périphérique devient immédiatement un membre et les différences enregistrées dans le bitmap sont résolues.

Mode Misc

   Le mode MISC inclus des opérations distinct qui opérent sur des périphériques distincts. Les opération sont:

--query Le périphérique devrait être un périphérique md actif. Affiche une description détaillée de l'array. --brief et --scan réduit les détails et formatte la sortie pour être incluse dans mdadm.conf. Le code de sortie donne des informations:

        0 L'array fonctionne normalement
        1 L'array a au moins un disque en erreur
        2 L'array a plusieurs disques en erreurs inutilisables
        4 Erreur en tentant d'obtenir des informations sur le périphérique

--detail-platform Affiche des détails sur les capacités RAID de la plateforme (firmware/topologie hardware). Si les métadonnées sont spécifiées avec -e ou --metadata= le code de retour est:

        0 Les métadonnées ont énuméré avec succès les composants de la plateforme dans le système
        1 Les métadonnées sont indépendante de la plateforme
        3 Les métadonnées ont échoué à trouver ses composants de la plateforme
       

--update-subarray= Si le périphérique est un conteneur et l'argument spécifie un sous-array dans le conteneur, il tente de mettre à jours le superblock dans le sous-array. C'est similaire à mettre à jours un array en mode assemble aec d'option -U.
--examine Le périphérique devrait être un composant d'un array md. mdadm lit le superblock md du périphérique et affiche le contenu. Si --brief ou --scan est donné, les périphériques qui sont des composant d'un array sont groupés ensemble et affiché comme simple entrée utilisable dans mdadm.conf.
--dump=dir Si le périphérique contient des métadonnées RAID, un fichier sera créé dans le répertoire spécifié et les métadonnées y seront écrites. Le fichier aura la même taille que le périphérique et contient les métadonnées au même emplacement. Cepenadnt le fichier sera sparse, donc seul ces blocs de métadonnées seront alloués. Plusieurs périphériques peuvent être listés.
--restore=dir Inverse de --dump. mdadm localise un fichier dans le répertoire et restore les métadonnées.
--stop Les périphériques devraient être des array md actif à désactiver, tant qu'ils ne sont pas utilisés.
--run Active un array md partiellement assemblé
--readonly Marque un array activ en lecture seule.
--scan excepté avec --examine, force l'opération à être appliqué à tous les array listés dans /proc/mdstat. --examine prend en compte les périphériques dans le fichier de configuration.
-b, --brief mode moins verbeux.

Mode Monitor

   vérifie périodiquemenent des array md et repporte tout les événements. De plus, mdadm peut déplacer les disques spare d'un array à un autre s'il est dans le même spare-group ou domain et si l'array de destinatio a un disque en erreur mais pas de spare.

   Le résultat de la supervision des array est la génération d'événements. Ces événements sont passé à un programme séparé (si spécifié) et peuvent être envoyés par mail.

   En passant les événements à un programme, celui-ci est lancé une fois par événement, et a 2 ou 3 arguments dans l'ordre: le nom de l'événement, le nom du périphérique md et le nom du périphérique.

   Si --scan est donné, un programme ou une adresse email doit être spécifié sur la ligne de commande ou dans le fichier de configuration, sinon mdadm ne supervise rien. Sans --scan, mdadm continue de superviser tant qu'il trouve quelque chose à superviser. Si aucun programme ou email n'est donné, chaque événement est reporté sur stdout. Les différents événements sont:

DeviceDisappeared Un array précédemment configuré ne semble plus être configuré (syslog priority: Critical)
RebuildStarted Un array commence la reconstruction (syslog priority: Warning)
RebuildNN où NN est un nombre indiquant le pourcentage de reconstruction effectuée. Les événements sont générés avec un incréments fixé qui peut être spécifié sur la ligne de commande. (syslog priority: Warning)
RebuildFinished Un array a été reconstruit, soit parce qu'il a fini normalement, soit parce qu'il a été annulé. (syslog priority: Warning)
Fail Un périphérique actif d'un aray a été marqué en faute (syslog priority: Critical)
FailSpare Un périphérique spare qui a été reconstruit pour remplacer un périphérique en faute a échoué (syslog priority: Critical)
SpareActive Un disque spare a été reconstruit pour remplacer un périphérique en faute et a réussi la reconstruction (syslog priority: Info)
NewArray Un nouvel array a été détecté dans le fichier /proc/mdstat (syslog priority: Info)
DegradedArray Un array apparaît être dégradé. Ce message n'est pas généré quand mdadm remarque un disque en faute qui a généré la dégradation, mais seulement quand mdadm note qu'un array est dégradé quand il est vu la première fois. (syslog priority: Critical)
MoveSpare Un disque spare a été déplacé d'un array dans un spare-group ou domain vers un autre array. (syslog priority: Info)
SparesMissing La configuration indique qu'un array devrait avoir un certain nombre de périphériques spare, mais mdadm détecte qu'il y en a moins. (syslog priority: Warning)
TestMessage Un array a été trouvé au démarrage, et le flag --test était donné (syslog priority: Info)

   Seul Fail, FailSpare, DegradedArray, SparesMissing et TestMessage sont envoyés par mail. Tous les événements sont envoyés au programme. Chaque événement a un périphériques array associé et possiblement un périphérique physique. Pour Fail, FailSpare, et SpareActive ce disque est le périphérique physique. Pour MoveSpare, ce périphérique est l'array où le spare est déplacé.

   Pour que mdadm déplace les spares d'un array à un autre, les différents arays doivent être labélisés avec le même spare-group ou les spares doivent être autorisés à migrer via les stratégies de domaine dans le fichier de configuration. les noms des spare-group doievnt être uniques.

   Quand mdadm détecte qu'un array dans un groupe de spare a moins de périphériques actifs que nécessaire pour que l'array sont complet, et n'a pas de périphériques spare, il recherche un autre array dans le même groupe de spare qui est complet et fonctionnel et possède un spare. Il va tenter de déplacer le spare, et en cas d'erreur en ajoutant le spare à l'array, il le remet dans l'array d'origine.

   Si le groupe de spare pour un array dégradé n'est pas définis, mdadm recherche les règles de migration de spare spécifié par les lignes POLICY dans mdadm.conf et effectue les même étapes ci-dessus sur les spare qui matchent.

Mode Grow

   Le mode GROW est utilisé pour changer la taille ou le shape d'un array actif. Pour que cela fonctionne, le kernel doit supporter les changements nécessaire. Les changement supportés sont:

- Changer l'attribut "size" des RAID1/4/5/6.
- Augmenter ou diminuer l'attribut 'raid-devices' des RAID0/1/4/5/6
- Changer la taille de chunk et le layout des RAID0/4/5/6/10
- Convertir entre RAID1 et RAID5, entre RAID5 et RAID6, entre RAID0, RAID4 et RAID5, et entre RAID0 et RAID10.

Mode Grow

   Utiliser GROW dans les conteneurs est actuellement supporté seulement pour le format de conteneur IMSM d'Intel. Le nombre de périphériques dans un conteneur peut être augmenté, ce qui affecte tous les array dans le conteneur, ou un array dans un conteneur peut être convertis entre les niveaux supportés par le conteneur, et la conversion est un de ceux listés ci-dessus. Re-dimensionner un array dans un conteneur IMSM avec --grow --siwe n'est pas encore supporté.

   agrandir (par ex, étendre le nombre de périphériques raid) pour le format de conteneur IMSM a un status expérimental. Il est permis par la variable d'environnement MDADM_EXPERIMENTAL qui doit être à '1'. Ceci pour les raisons suivantes:

1. Le check-pointing n'a pas été pleinement testé. Cela peut causer des incompatibilités durant l'expansion: un array qui est étendus ne peut pas voyager entre Windows et les systèmes Linux.
2. Interrompre l'expansion n'est pas recommandé.

   Note: le Checkpointing natif d'Intel n'utilise pas l'option --backup-file et c'est transparent pour l'assemblage.

Changer la taile

   Normalement quand un array est construit la taille est donnée par le plus petit des disques. Si tous les petits disques dans un array sont supprimés et remplacés avec des disques plus grand, il faut changer la taille avec GROW pour prendre en compte l'espace supplémentaire. Si la taille est augmentée de cette manière, une resynchro démarre pour s'assurer que les nouvelles parties de l'array sont synchronisées.

   Noter que quand la taille d'un array change, tout système de fichier qui peut être stocké dans un array doit être explicitement étendu pour utiliser l'espace supplémentaire, ou réduit avant de réduire l'array.

   Également, la taille d'un array ne peut pas être changé s'il a un bitmap actif. Si un array a un bitmap, il doit être supprimé avant de changer la taille. Une fois le changement complet effectué, un nouveau bitmap peut être créé.

Changer les périphériques raid

   Un array RAID1 peut fonctionner avec plusieurs périphériques à partir de 1 (bien que 1 n'est pas très utile). Il est parfois souhaitable d'augmenter ou diminuer le nombre de disques actifs. Noter que c'est différents d'ajouter ou supprimer à chaud, qui change le nombre de périphériques inactifs.

   En réduisant le nombre de périphériques dans un raid1, les slots qui sont supprimés de l'array doivent déjà être vacants. C'est à dire, les périphériques qui étaient dans ces slots doivent être en erreur et supprimés.

   Changer le nombre de périphériques actifs dans un raid5/6 nécessite plus d'effort. Chaque block dans l'array doit être lu et re-écrit dans un nouvel emplacement. Le kernel est capable d'augmenter le nombre de périphériques dans un raid5 de manière sûre, incluant le redémarrage d'un reshape interrompu. Le kernel est également capable d'augmenter ou diminuer le nombre de périphériques dans un raid5 ou 6.

   Le kernel est capable de convertir un raid0 en raid4 ou 5. mdadm utilise cette fonctionnalité et la capacité d'ajouter des périphériques à un raid4 pour permettre aux périphériques d'être ajoutés dans un raid0. En demandant cela, mdadm convertis le raid0 en un raid4, ajoute les disques nécessaire et reshape, puis convertit le raid4 en raid0.

   En diminuant le nombre de disques, la taille de l'array diminue également. S'il y avait des données dans l'array, elles peuvent être supprimées de manière irréversible, donc il faut d'abord réduire le système de fichier dans l'array pour correspondre à la nouvelle taille. Pour éviter tout accident, mdadm exige que la taille de l'array soit réduite avant avec mdadm --grow --array-size. C'est un changement réversible qui rend simplement la fin de l'array inaccessible. L'integrité des données peuvent ainsi être vérifiées avant de réduire le nombre de périphériques.

   En relocalisant les tout premiers stripes dans un raid5 ou 6, il n'est pas possible de conserver les données sur le disques completement consistant et à l'épreuve des crash. Pour fournir la sécurité requise, mdadm désactive les écritures dans l'array lors du reshaping de la section critique, et créé un backup des données qui sont dans cette section. Pour les agrandissements, ce backup peut être stocké dans un des périphériques sparses de l'array, cependant il peut également être stocksé dans un fichier séparé avec --backup-file, et est obligatoire pour les réductions, changements de niveau de RAID et de layout. Si cette option est utilisée, et que le système crash durant la période critique, le même fichier doit être passé à --assemble pour restaurer le backup et réassembler l'array. En réduisant, le reshape est fait depuis la fin jusqu'au début, donc la section critique est à la fin du reshape.

Changement le level

   Changer le niveau de RAID d'un array est fait instantannément. Cependant, dans le cas d'un raid5 vers un raid6 cela oblige un layout non-standard du raid6, et dans le raid6 vers un raid5 ce layout non-standard est requis avant le changement. Donc bien que le changement de niveau soit instantanné, le changement de layout peut prendre du temps. Un --backup-file est requis. Si l'array n'est pas simultannément agrandis ou réduit, la taille de l'array restera la même - par exemple, reshape un raid5 à 3 disques en un raid6 à 4 disques - le fichier backup ne sera pas utilisé seulement pour la section critique, mais via toute l'opération reshape, comme décris dans la section sur les changeents de layout.

Changement de taille de chunk et de layout

   Changer la taille de chunk ou de layout sans également changer le nombre de disques implique une ré-écriture de tous les blocks. Pour éviter la perte de données en cas de crash, un --backup-file doit être fournis. Les petites section de l'array seront copiés dans le fichier backup pendant qu'ils sont réarrangés. Cela signifie que toutes les données seront copiées 2 fois, donc ce type de reshape est très lent.

   Si le reshape est interrompu, ce fichier backup doit être donné à mdadm --assemble pour que l'array puisse être ré-assemblé. En conséquence, le fichie ne peut pas être stocké dans le périphériques en cours de reshape.

Changement de bitmap

   Un bitmap write-intent peut être ajouté ou supprimé d'un array actif. On peut ajouter un bitmap interne ou externe. Noter que l'ajout d'un bitmap stocké dans un fichier qui est dans le système de fichier affecté dans le raid peut bloque le système.

Mode Incrémental

   Ce mode est conçu pour être utilisé en conjonction avec le système de découverte de périphérique. Quand des périphériques sont trouvés dans le système, ils peuvent être passé à mdadm --incremental pour être ajoutés à l'array approprié.

   Inversement, il peut également être utilisé avec --fail pour faire l'inverse et trouver l'array d'un périphérique particulier et le retirer.

   Si le périphérique passé est un périphériques conteneur, alors tous les arrays décris par les métadonnées du conteneur seront démarrés.

   mdadm effectue des tests pour déterminer si le périphérique fait partie d'un array, et dans quel array il devrait être membre. Si un array approprié est trouvé, ou peut être créé, mdadm ajoute le périphérique à l'array et le démarre.

   Noter que mdadm n'ajoute les périphériques à un array que s'il était fonctionnel (actif ou spare) dans l'array. Le support pour l'inclusion automatique d'un nouveau disque comme un spare dans certains array nécessite une configuration via le fichier de configuration (POLICY). Les tests que mdadm effectue sont les suivants:

- Si le périphérique est permis par mdadm.conf, c'est à dire listé dans une ligne DEVICES. Si DEVICES contient le mot clé 'partitions', tous les périphériques sont permis.
- Si le périphérique a un superblock md valide.

   mdadm conserve une liste d'array qui sont partiellement assemblés dans /run/mdadm/map. Si aucun array n'existe qui matche les métadonnées dans le nouveau périphérique, mdadm doit choisir un nom de périphérique et un numéro d'unité. Si se base sur un nom donné dans mdadm.conf et un nom stocké dans les métadonnées. Si le nom suggère un numéro d'unité, ce nombre est utilisé, sinon un numéro libre est choisis. Normalement, mdadm préfère créer un array partitionnable, cependant si la ligne CREATE dans mdadm.conf suggère un array non-partitionnable, il l'honore.

   Si l'array n'est pas trouvé dans le fichier de configuration et que ses métadonnées n'identifient pas qu'il appartient au homehost, mdadm choisis un nom pour l'array qui ne rentre pas en conflict avec un array qui appartient à cet hôte. Il le fait en ajoutant un '_' et un petit nombre au nom préférré par les métadonnées.

   Une fois un array approprié trouvé ou créé et le périphérique ajouté, mdadm doit décider si l'array est prêt à démarrer. Si compare le nombre de périphériques disponible (non-spare) au nombre de périphériques que les métadonnées suggèrent pour être actif. S'il y a assez de disque, l'array est démarré.

   --run peut alternativement être passé à mdadm auquel cas l'array sera lancé dès qu'il y a assez de disque. Notes qu'aucune de ces approche n'est vraiment idéal. Si tous les périphériques sont découverts, mdadm -IRs peut être lancé pour démarrer tous les arrays qui sont assemblés incrémentalement. Cela signifie qu'aucune mise à jours des métadonnées n'est faite, ni resyncho ou récupération. De plus, les périphériques qui sont trouvés avant la première écriture peuvent être ajoutés de manière sûre.

Variables d'environnement

MDADM_NO_MDMON Empêche de démarrage de mdmon
MDADM_NO_UDEV Ne laisse pas udev créer les fichiers de périphériques
MDADM_NO_SYSTEMCTL N'utilise pas systemd pour démarrer les tâches
IMSM_NO_PLATFORM À 1, désactive les vérifications de plateform Intel pour les raid IMSM.
MDADM_GROW_ALLOW_OLD Si un array est stoppé durant un reshape, qui utilise un fichier backup, puis il est ré-assemblé, mdadm peut se pleindre que le fichier backup est trop ancien. À 1, ne vérifie pas le fichier backup.
MDADM_CONF_AUTO Toute chaîne dans cette variable est ajoutée au démarrage de la ligne AUTO dans le fichier de configuration. Peut être utilisé pour désactiver certains types de métadonnées. (ex: '-ddf -imsm' pour désactiver ces array )

Exemples

Voir si un périphérique est un array, ou en fait partie
mdadm --query /dev/name-of-device
Assembler et démarrer tous les arrays listés dans le fichier de configuration
mdadm --assemble --scan
Stopper tous les array
mdadm --stop --scan
Si une adresse email ou un programme est donné dans le fichier de configuration, monitor le status de tous les arrays listé dan ce fichier en les requêtant toutes les 2 minutes
mdadm --follow --scan --delay=120
Créer /dev/md0 en raid1 avec /dev/hda1 et /dev/hdc1:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1
Créer un fichier de configuration prototype qui décris les arrays actifs
echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' › mdadm.conf mdadm --detail --scan ›› mdadm.conf
Trouver les array qui peuvent être assemblés depuis des disques (pas des partitions), et stocke les informations au format du fichier de configuration.
echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' › mdadm.conf mdadm --examine --scan --config=mdadm.conf ›› mdadm.conf
Créer une liste de périphérique en lisant /proc/partitions et assemble /dev/md0 avec tous les périphériques avec un superblock raid et un numéro mineur 0
mdadm -Ac partitions -m 0 /dev/md0
Si le fichier de configuration contient une adresse email ou un programme d'alerte, lance mdadm en fond et monitor tous les périphériques md. Écris également le fichier pid
mdadm --monitor --scan --daemonise › /run/mdadm/mon.pid
Tente d'incorporer le périphérique nouvellement découvert dans un array approprié
mdadm -Iq /dev/somedevice
Reconstruit la map d'array depuis les arrays courant, puis démarre ceux qui peuvent l'être
mdadm --incremental --rebuild-map --run --scan
Tout périphérique composant de /dev/md4 sera marqué en faute et supprimé de l'array
mdadm /dev/md4 --fail detached --remove detached
l'array /dev/md4 qui est un RAID5 sera convertis en RAID6. Il devrait normalement y avoir un disque spare dans l'array avant
mdadm --grow /dev/md4 --level=6 --backup-file=/root/backup-md4
Créer un array DDF avec 6 disques
mdadm --create /dev/md/ddf --metadata=ddf --raid-disks 6 /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
Créer un raid5 avec 3 périphériques dans le jeu DDF donné. N'utilise que 30Go dans chaque disque
mdadm --create /dev/md/home -n3 -l5 -z 30000000 /dev/md/ddf
Assemble un array ddf pré-existant
mdadm -A /dev/md/ddf1 /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
Assemble tous les arrays contenus dans l'array ddf, assignant un nom approprié
mdadm -I /dev/md/ddf1
Affiche l'aide pour le mode création
mdadm --create --help
Affiche l'aide sur le format du fichier de configuration
mdadm --config --help

Fichiers

/proc/mdstat
/etc/mdadm/mdadm.conf (ou /etc/mdadm.conf)
/etc/mdadm/mdadm.conf.d (ou /etc/mdadm.conf.d)
/run/mdadm/map

Noms des périphériques

   mdadm comprend 2 types de noms pour les périphériques array. Le premier est dit standard, qui matche les noms utilisés par le kernel et qui apparaîssent dans /proc/mdstat.

   Le second peut être librement choisi, mais doit résider dans /dev/md/. En donnant un nom à mdadm pour créer ou assembler un array, le chemin complet doit être donné, ou le suffixe du second type de nom.

   Quand mdadm choisis les noms de périphérique durant l'auto-assemblage ou l'assemblage incrémental, il ajoute parfois une petite séquence de nombre à la fin du nom pour éviter les conflits entre plusieurs array de même nom. Si mdadm peut déterminer que l'array est vraiment déstiné à cet hôte, soit par un hostname dans les métadonnées, ou par la présence de l'array dans mdadm.conf, il n'utilise pas le suffixe si possible. Également, si le homehost est spécifié en ‹ignore›, mdadm n'utilise le suffixe que si un array différent de même nom existe déja ou est listé dans la configuration.

Les noms standard sont sous la forme:
/dev/mdNN
NN est un nombre. Les noms standard pour les arrays partitionnables sont sous la forme:
/dev/md_dNN
Les numéro de partition sont indiqués en ajoutant pMM (ex: /dev/md/d1p2)
Depuis le kernel 2.6.28 un array non-partitionnable peut être partitionné, donc md_dNN n'est plus nécessaire, et des partitions /dev/mdNNpXX sont possibles.
Depuis le kernel 2.6.29 les noms standard peut être non-numérique:
/dev/md_XXX
XXX est une chaine. Ces noms sont supportés par mdadm v3.3.
^
22 mai 2016

htmlpdflatexmanmd




md

md

Pilote Multiple Device

   Le pilote md fournis des périphériques virtuels qui sont créés depuis un ou plusieurs périphériques indépendants. Cet array de périphériques contient souvent une redondance et les périphériques sont souvent des périphériques disques.

   md supporte les RAID niveau 1 (mirroring), 4 (striped avec parité), 5 (striped avec parité distribué), 6 (striped avec double redondance), et 10 (striped et mirroré). Si un périphérique échoue en utilisant un de ces levels, l'array contitue de fonctionner.

   md supporte également les configurations pseudo-raid (non-redondants) incluant le raid0 (striped array), linear (array sérialisé), multipath (un jeu de différentes interfaces vers le même périphérique) et faulty (une couche sur un simple périphérique dans lequel les erreurs sont injectés).

Métadonnées MD

   Chaque périphérique dans un array peut avoir des métadonnées stockées dans le périphérique. Ces métadonnées sont parfois appelés superblock. Les métadonnées enregistrent des informations sur la structure et l'état de l'array pour pouvoir ré-assembler l'array après un arrêt.

   Depuis la version 2.6.10 du Kernel, md fournis le support pour 2 formats différents de métadonnées, et d'autres formats peuvent être ajoutés.

   Le format commun, la version 0.90, a un superblock qui fait 4ko et est écrit dans un block aligné sur 64Ko qui démarre au plus 64K et moins de 128k de la fin du périphérique (ex, pour obtenir l'adresse du superblock arrondir la taille du périphérique à un multiple de 64K, puis soustraire 64K). La taille disponible pour chaque périphérique est la quantité d'espace avent le superblock, dont entre 64K et 128K est perdu quant un périphérique est incorporé dans un array MD. Ce superblock stock les champs multi-octet de manière indépendante su processeur, pour que les array puissent être déplacés entre des machines de différents processeurs.

   Le nouveau format, version 1, a un superblock qui fait normalement 1K de long, mais peut faire plus. Il est normalement stocké entre 8K et 12k de la fin du périphérique, sur un alignement 4K, bien de des variante peuvent être stockées au début du disque (version 1.1) ou à 4K du début du périphérique (version 1.2). Ce format de métadonnées stocke les données multi-octets dans un format indépendant du processeur et supporte des centaines de périphériques contre 28 pour les versions 0.90.

   Les métadonnées contiennent, entre autre:

LEVEL Le type d'array
UUID Un identifiant 128bits unique qui identifie l'array

   Quand une versions 0.90 est redéfinie (ex, ajout de péripériques dans un raid 5), le numéro de version est temporairement mis à 0.91. Celà permet de s'assurer que le processus s'est terminé correctement.

Métadonnées sans arrays

   Bien qu'il est recommandé de créer des array avec des superblocks pour qu'ils puissent être réassemblés correctement, il y a certaines circonstances où un array sant superblock est préférrable:

LEGACY ARRAY Les première versions du pilote md ne supportent que les configuration LINEAR et RAID0 et n'utilise pas de superblock (qui est moins critique dans ces configuration).
FAULTY Ce type ne tire aucun bénéfice d'un superblock
MULTIPATH Il est souvent possible de détecter les périphériques qui sont des chemins différents du même stockage directement au lieu d'avoir un superblock distinct. Dans ce cas, un array multipath sans superblock a du sens.
RAID1 Dans certaines configurations il peut être souhaitable de créer une configuration raid1 sans superblock, pour maintenir l'état de l'array n'importe où.

Métadonnées externes

   Depuis le kernel 2.6.28, le pilote md supporte les arrays avec des métadonnées externe. C'est à dire que les métadonnées ne sont pas gérés par le kernel mais par un programme de l'espace utilisateur. Cela permet de supporter différents formats de métadonnées.

   md est capable de communiquer avec le programme externe via différents attributs sysfs pour qu'il puisse effectuer les changements appropriés - par exemple, pour marquer un périphérique comme étant en faute. Si nécessaire, md attend que le programme prenne connaissance de l'événement en écrivant dans un attribut sysfs. la man mdmon(8) contient des détails sur cette intéraction.

   Conteneurs

LINEAR

   Un array LINEAR sérialise simplement l'espace disponible de chaque lecteur pour former un grand disque virtuel. L'avantage de cet arrangement par rapport au raid0 est que l'array peut être configuré plus tard sans perturber les données dans l'array.

RAID0

   Un raid0 est également connu comme array striped. Il est configuré à la création avec un taille de shunk qui doit être une puissance de 2, et au moins 4 KiO. Le premier chunk est assigné au premier disque, le second au deuxième disque, etc. Cette collection de chunk forment un stripe. Si les périphériques dans l'array n'ont pas tous la même taille, une fois le plus petit disque remplis, le pilote collecte les chunks en stripes plus petits.

RAID1

   Un raid1 est également connus comme un jeu mirroir. Une fois initialisé, chaque périphérique dans un raid1 devrait avoir la même taille. Si ce n'est pas le cas, seul la quantité d'espace disponible sur le plus petit périphérique est utilisé.

   Noter que la lecture balancé faite par le pilote n'améliore pas les performance comme un raid0. Les périphériques individuels dans un raid1 peuvent être marqués 'write-mostly'. Ces lecteurs sont exclus de la lecture balancée et seront lus seulement s'il n'y a pas d'autre option. Peut être utile pour des périphériques connectés sur un lien lent.

RAID4

   Un raid4 est similaire à un RAID0 avec un périphérique suplémentaire pour stocker la parité. Ce périphérique est le dernier des périphériques actifs dans l'array. à la différence de raid0, raid4 nécessite également que tous les stripes disques, donc l'espace supplémentaire sur les disques plus grand que le plus petit est perdu.

   Cela permet à l'array de continuer de fonctionner si un disque échoue.

RAID5

   Similaire au raid5, mais les blocks de parités pour chaque stripe est distribué sur tous les périphériques. Cela permet plus de parallelisme dans les écritures. Il y a également plus de parallélisme pendant les lecture.

RAID6

   Similaire au raid5, mais peut gérer la perte de 2 périphériques sans perte de données. Nécessite N+2 disques. Les performances d'un raid6 est légerement inférieur à un raid5 en mode simple disque d'erreur, et très lent pour un mode double disque d'erreur.

RAID10

   Fournis une combinaison de raid1 et raid0, et parfois appelé raid1+0. Chaque block de données est dupliqué un certain nombre de fois, et la collection résultante de ces blocks sont distribués sur plusieurs disques.

   En configurant un raid10, il est nécessaire de spécifier le nombre de réplicas de chaque block de données qui sont requis (généralement 2) et si leur layout est 'near', 'far' ou 'offset'

Exemples de layout raid10

   Les exemples ci-dessous visualisent la distribution de chunk dans les périphériques sous-jacents pour le layout.

   Pour simplifier il est assumé que la taille des chunks est égal à la taille des blocks des périphériques sous-jacents tout comme ceux du périphérique RAID10 exporté par le kernel.

   Les nombres décimaux (0, 1, 2, ...) sont les chunks du RAID10 et donc également des blocks et adresse de blocks du périphérique raid exporté

Layout "near" Quand des réplicas 'near' sont choisis, les copies multiples d'un chunk donné sont disposés consécutivement (aussi proche les uns des autres que possible) dans les stripes de l'array.

Avec un nombre paire de périphériques, ils sont probablement être au même offset sur les différents périphériques. C'est le raid1+0 classique; c'est à dire 2 groupes de périphériques mirrorés. Dans l'exemple ci-dessous, les groupes de périphériques #1 / #2 et #3 / #4 sont des raid1, formant un raid0.
______|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
______|_Device_#1_|_Device_#2_|_Device_#3_|_Device_#4_|
|- - -|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
|0x00_|_____0_____|_____0_____|_____1_____|_____1_____|
|0x01_|_____2_____|_____2_____|_____3_____|_____3_____|
|...__|____...____|____...____|____...____|____...____|
|_:___|_____:_____|_____:_____|_____:_____|_____:_____|
|...__|____...____|____...____|____...____|____...____|
|0x80_|____254____|____254____|____255____|____255____|
|- - -|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
________\- - - - -v- - - - -/___\- - - - -v- - - - -/_
________________RAID1___________________RAID1_________
________\- - - - - - - - - - -v- - - - - - - - - - -/_
____________________________RAID0_____________________

Exemple avec 2 copies par chunk et un nombre impaire de périphériques:
______|- - - - |- - - - |- - - - |- - - - |- - - - |
______|_Dev_#1_|_Dev_#2_|_Dev_#3_|_Dev_#4_|_Dev_#5_|
|- - -|- - - - |- - - - |- - - - |- - - - |- - - - |
|0x00_|___0____|___0____|___1____|___1____|___2____|
|0x01_|___2____|___3____|___3____|___4____|___4____|
|...__|__...___|__...___|__...___|__...___|__...___|
|_:___|___:____|___:____|___:____|___:____|___:____|
|...__|__...___|__...___|__...___|__...___|__...___|
|0x80_|__317___|__318___|__318___|__319___|__319___|
|- - -|- - - - |- - - - |- - - - |- - - - |- - - - |

Layout "far" Quand les réplicas far sont choisis, les copies d'un chunk sont disposés assez éloignés (aussi loin qu'il est raisonnablement possible)

   D'abord une séquence complète de tous les blocks de données (c'est à dire la données vues sur le périphériques blocks raid10 exporté) sont stripé sur les périphériques Puis une autre séquence (shift) complète de tous les blocks de données; et ainsi de suite

   Le shift nécessaire pour empêcher de placer les copies du même chunks sur les même périphériques est actuellement une permutation cyclique avec l'offset 1 de chaque stripes dans une séquence complet de chunks

L'offset 1 est relatif à la séquence complète précédente de chunks, donc en cas de plus de 2 copies par chunk on obtient les offsets suivantes:
1. Séquence complète de chunks: offset = 0
2. Séquence complète de chunks: offset = 1
3. Séquence complète de chunks: offset = 2
...
n. complete sequence of chunks: offset = n-1

Exemple avec 2 copies par chunk et un nombre paire de périphériques:
______|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
______|_Device_#1_|_Device_#2_|_Device_#3_|_Device_#4_|
|- - -|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
|0x00_|_____0_____|_____1_____|_____2_____|_____3_____|_\
|0x01_|_____4_____|_____5_____|_____6_____|_____7_____|_›_[#]
|...__|____...____|____...____|____...____|____...____|_:
|_:___|_____:_____|_____:_____|_____:_____|_____:_____|_:
|...__|____...____|____...____|____...____|____...____|_:
|0x40_|____252____|____253____|____254____|____255____|_/
|0x41_|_____3_____|_____0_____|_____1_____|_____2_____|_\
|0x42_|_____7_____|_____4_____|_____5_____|_____6_____|_›_[#]~
|...__|____...____|____...____|____...____|____...____|_:
|_:___|_____:_____|_____:_____|_____:_____|_____:_____|_:
|...__|____...____|____...____|____...____|____...____|_:
|0x80_|____255____|____252____|____253____|____254____|_/
|- - -|- - - - - -|- - - - - -|- - - - - -|- - - - - -|

Exemple avec 2 copies par chunk et un nombre impaire de périphériques:
______|- - - - |- - - - |- - - - |- - - - |- - - - |
______|_Dev_#1_|_Dev_#2_|_Dev_#3_|_Dev_#4_|_Dev_#5_|
|- - -|- - - - |- - - - |- - - - |- - - - |- - - - |
|0x00_|___0____|___1____|___2____|___3____|___4____|_\
|0x01_|___5____|___6____|___7____|___8____|___9____|_›_[#]
|...__|__...___|__...___|__...___|__...___|__...___|_:
|_:___|___:____|___:____|___:____|___:____|___:____|_:
|...__|__...___|__...___|__...___|__...___|__...___|_:
|0x40_|__315___|__316___|__317___|__318___|__319___|_/
|0x41_|___4____|___0____|___1____|___2____|___3____|_\
|0x42_|___9____|___5____|___6____|___7____|___8____|_›_[#]~
|...__|__...___|__...___|__...___|__...___|__...___|_:
|_:___|___:____|___:____|___:____|___:____|___:____|_:
|...__|__...___|__...___|__...___|__...___|__...___|_:
|0x80_|__319___|__315___|__316___|__317___|__318___|_/
|- - -|- - - - |- - - - |- - - - |- - - - |- - - - |

   Avec [#] étant la séquence complète de chunks et [#]~ la permutation cyclique avec l'offset 1 (dans le cas de plus de 2 copies par chunk ce serait ([#]~)~, (([#]~)~)~, ...)

   L'avantage de ce layout est que MD peut facilement propager les lectures séquentiellement sur le périphériques, les rendant similaire au raid0 en terme de vitesse. Les écriture en revenche sont plus lents

Layout offset Quand des réplicas offset sont choisis, toutes les copies d'un chunk donné sont stripé consécutivement (offset par la longueur du stripe avec chacun d'entre eux) sur les périphériques.

   Expliqué en détail, les chunks consécutif sont stripés sur les périphériques, immédiatement suivis par une copie décalée de ces chunk. Ce motif se répète pour tous les chunks consécutifs suivant.

   Le shift est nécessaire pour empêcher de placer les copies des même chunks sur le même périphérique avec une permutation de 1 de chaque copie stripée de chunks consécution.

L'offset 1 est relatif à la copie précedente, donc dans le cas de plus de 2 copies par chunk on obtient:
1. chunks consécutifs ‹nombre de périphériques›: offset = 0
2. chunks consécutifs ‹nombre de périphériques› = 1
3. chunks consécutifs ‹nombre de périphériques› = 2
...
n. chunks consécutifs ‹nombre de périphériques› = n-1

Exemple avec 2 copies par chunk et un nombre paire de périphériques:
______|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
______|_Device_#1_|_Device_#2_|_Device_#3_|_Device_#4_|
|- - -|- - - - - -|- - - - - -|- - - - - -|- - - - - -|
|0x00_|_____0_____|_____1_____|_____2_____|_____3_____|_)_AA
|0x01_|_____3_____|_____0_____|_____1_____|_____2_____|_)_AA~
|0x02_|_____4_____|_____5_____|_____6_____|_____7_____|_)_AB
|0x03_|_____7_____|_____4_____|_____5_____|_____6_____|_)_AB~
|...__|____...____|____...____|____...____|____...____|_)_...
|_:___|_____:_____|_____:_____|_____:_____|_____:_____|___:
|...__|____...____|____...____|____...____|____...____|_)_...
|0x79_|____251____|____252____|____253____|____254____|_)_EX
|0x80_|____254____|____251____|____252____|____253____|_)_EX~
|- - -|- - - - - -|- - - - - -|- - - - - -|- - - - - -|

Exemple avec 2 copies par chunk et un nombre impaire de périphériques:
______|- - - - |- - - - |- - - - |- - - - |- - - - |
______|_Dev_#1_|_Dev_#2_|_Dev_#3_|_Dev_#4_|_Dev_#5_|
|- - -|- - - - |- - - - |- - - - |- - - - |- - - - |
|0x00_|___0____|___1____|___2____|___3____|___4____|_)_AA
|0x01_|___4____|___0____|___1____|___2____|___3____|_)_AA~
|0x02_|___5____|___6____|___7____|___8____|___9____|_)_AB
|0x03_|___9____|___5____|___6____|___7____|___8____|_)_AB~
|...__|__...___|__...___|__...___|__...___|__...___|_)_...
|_:___|___:____|___:____|___:____|___:____|___:____|___:
|...__|__...___|__...___|__...___|__...___|__...___|_)_...
|0x79_|__314___|__315___|__316___|__317___|__318___|_)_EX
|0x80_|__318___|__314___|__315___|__316___|__317___|_)_EX~
|- - -|- - - - |- - - - |- - - - |- - - - |- - - - |

   Avec AA, AB, ..., AZ, BA, ... étant le jeu de ‹nombre de périphériques› consécutifs de chunks et AA~, AB~, ..., AZ~, BA~, ... la permutation cyclique avec l'offset 1 (dans le cas de plus de 2 copies par chunk, il y aura (AA~)~, ... et ((AA~)~)~, ... et ainsi de suite)

   Cela donne des caractéristiques de lecture similaires à far, mais plus adapté à de grandes tailles de chunk, sans autant d'écritures.

   Il devrait être noté que le nombre de périphériques dans un raid10 n'a pas besoin d'être un multiple du nombre de réplica de chaque block de données; cependant, il doit y avoir au moins autant de périphériques que de réplicas

   Si, par exemple, un array est créé avec 5 périphériques et 2 réplicas, alors un espace équivalent à 2,5 périphériques sera disponible, et chaque block sera stocké sur 2 périphériques différents.

   Finalement, il est possible d'avoir un array avec des copies à la fois near et far. Si un array est configuré avec 2 copies near et 2 copies far, il y aura un total de 4 copies de chaque block, chacun sur un disque différent.

MULTIPATH MULTIPATH n'est pas vraiment un RAID vu qu'il n'y a qu'un disque physique dans un array md MULTIPATH. Cependant il y a plusieurs points d'accès à ce périphérique, et un de ces chemins peut échouer, donc il y a quelques similarités.

   Un array MULTIPATH est composé d'un nombre de périphériques logiquement différents, souvent des interfaces fibre qui réfèrent tous au même périphérique. Si une de ces interfaces échoue (ex: dûs à un problème de cable), le pilote va tenter de rediriger les requêtes vers une autre interface.

   Le disque MULTIPATH ne reçoit plus de développement et ne devrait pas être utilisé.

FAULTY Le module md FAULTY est fournis dans un but de tests. Un array FAULTY a exactement un périphérique et est normalement assemblé sans superblock, dont l'array créé fournis un accès directe à toutes les données dans le périphérique.

   Le module FAULTY peut être requis pour simuler des fautes pour permettre de tester d'autres niveaux md ou systèmes de fichier. Les fautes peuvent être choisies pour se déclencher sur des requêtes de lecture, et peut être transitoires ou persistantes.

Arrêt non propre

   Quand des changements sont fait sur un array RAID1/4/5/6/10 il y a une possibilité d'inconsistance pour de courtes périodes de temps vu que chaque mise à jours nécessite d'écrire au moins 2 blocks sur différents périphériques, et ces écritures peuvent ne pas se produire au même moment. Donc si un système avec un de ces array est éteind au milieu d'une opération d'écriture, l'array peut être inconsistant.

   Pour gérer cette situation, le pilote md marque l'array 'dirty' avant d'écrire une donnée, et le marque 'clean' quan l'array est désactivé à l'extinction. Si le pilote md trouve un array dirty au démarrage, il procède à une correction. Pour RAID1, cela implique de copier le contenu du premier disque dans tous les autres. Pour RAID4/5/6, cela implique de recalculer la parité pour chaque stripe et de s'assurerque le block de parité a une valeur correcte. Pour RAID10 cela implique de copier un des réplicas de chaque block dans tous les autres. Ce processus de resynchronisation est effectue en tâche de fond. L'array peut être utilisé pendant ce temps, mais possiblement avec des performances réduites.

   Si un RAID4/5/6 est dégradé (il manque au moins un disque, 2 pour un raid6) quand il est redémarré après un arrêt non propre, il ne peut pas recalculer la parité, et des données corrompues peuvent ne pas être détectés. Le pilote md ne démarrera pas si un array dans ces condition sans intervention manuelle, bien que ce comportement peut être changé par un paramètre kernel.

Récupération

   Si le pilote md détecte une erreur d'écriture sur un périphérique dans un RAID1/4/5/6/10, il désactive immédiatement le périphérique (marqué faulty) et continue ses opérations sur les autres disques. Il y a un disque spare, le pilote va démarrer le re-création sur un des disques spare.

   Dans le kernel, une erreur de lecture force md à ne pas tenter de récupérer un mauvais block, ex, il va trouve la donnée correcte quelque-part, écrire sur le block défectueux, puis tenter de lire ce block de nouveau. Si l'écriture ou la re-lecture échoue, md traite l'erreur de la même manière qu'une erreur d'écriture est traitée, et échoue tout le périphérique.

   Quand ce processus de récupération se produit, md monitor l'accès à l'array et affiche le taux de récupération si d'autre activités se produisent, donc un accès normal à l'array n'est pas affecté. Quand une autre activité survient, le processus de récupération la traite à pleine vitesse. Les vitesses sont contrôlés avec 'speed_limit_min' et 'speed_limit_max'.

scrubbing et mismatches

   Vu que les périphériques de stockage peuvent développer de mauvais blocks à tout moment il est utile de lire régulièrement tous les blocks de tous les périphériques dans un array pour capturer ces blocks defectueux le plus tôt possible. Ce processus est appelé scribbing.

   Les arrays md peuvent être scrubbés en écrivant soit check ou repair dans le fichier md/sync_action dans le répertoire sysfs pour le périphérique.

   En demandant un scrub, md lit tous les block et vérifie la consistance des données. Pour raid1/10, cela signifie que les copies sont identiques. pour raid4/5/6 cela signifie que le block de parité est correcte.

   Si une erreur de lecture est détectée durant ce processus, le gestion d'erreur corrige les données. Dans de nombreux cas, cela corrige effectivement le mauvais block.

   Si tous les blocks sont lus avec succès mais apparaîssent inconsistants, ils sont considérés comme mismatch.

   Si 'check' a été utilisée, aucune action n'est prise pour gérer le mismatch, il est simplement enregistré. Si 'repair' est utilisé, un mismatch sera réparé de la même manière que resync répare les array. Pour raid5/6, de nouveaux blocks de parité sont écris. Pour raid1/10, tous sauf un block sont écrasés avec le contenu de ce block.

   Un compteur de mismatch est enregistré dans sysfs 'md/mismatch_cnt'. Il est mis à 0 quand un scrub commence et est incrémenté quand un secteur est trouvé qui est un mismatch, il ne détermine pas exactement combien de secteurs sont affectés mais ajoute simplement le nombre de secteurs dans l'unité IO qui été utilisé. Donc une valeur de 128 peut signifier qu'une vérification de 64Ko a trouvé une erreur (128*512o = 64Ko)

   Si un array est créé par mdadm avec --assume-clean alor une vérification ultérieure peut s'attendre à trouver des mismatch. Dans un raid5/6 propre, tout mismatch devrait indiquer un problème hardware.

   Cependant, sur un raid1/10 il est possible qu'il s'agisse d'un problème logiciel. Cela ne signifie pas nécessairement que les données dans l'array sont corrompues. Cela peut simplement signifier que le système ne s'occupe pas de ce qui est stocké sur cette partie de l'array - c'est de l'espace inutilisé.

   La cause principale de mismatch sur un raid0/10 se produit si une partition swap ou un fichier swap est stockés dans l'array.

   Quand le sous-système swap souhaite écrire une page de mémoire, il flag la page comme 'clean' dans le gestionnaire mémoire et demande au périphériques swap de l'écrire. Il est possible que la mémoire soit changée durant l'écriture dans le swap. Dans ce cas le flag 'clean' sera effacé une fois l'écriture complétée, et le sous-système swap va simplement oublier que le swapout a été tenté, et va possiblement choisir une page différente à écrire.

   Si le périphériques swap était sur un raid1/10, la donnée est envoyée de la mémoire vers de périphérique 2 fois, donc il est possible que la mémoire ait été changée entre temps. Ainsi, la valeur mismatch_cnt ne peut pas être interprété de manière sûre sur un raid1 ou raid10, notamment quand le périphérique est utilisé pour le swap.

Bitmap write-intent logging

   md supporte le log d'écriture basé sur bitmap. Si configuré, le bitmap est utilisé pour enregistrer quels blocks de l'array peuvent être désyncho. Avant toute requête d'écriture, md s'assure que le bit correspondant dans le log est mis. Après un délai sant écritures dans une zone de l'array, le bit correspondant est effacé.

   Ce bitmap est utilisé pour 2 optimisations:

   D'abord, après un arrêt non propre, le processus de resyncho va consulter le bitmap et seulement resynchroniser les blocks qui correspondent aux bits mis dans le bitmap. Cela peut considérablement réduire le temps de resynchro

   Ensuite, quand un lecteur échoue et est enlevé de l'array, md arrête d'effacer les bits dans les log. Si ce même disque est réajouté à l'array, md va le notifier et seulement récupérer les section du disque qui sont couverts par les bits mis dans le log. Cela peut permettre à un périphérique d'être temporairement enlevé puis réinséré sans causer de gros coûts de récupération.

   Le log d'écriture peut être stocké dans un fichier sur un périphérique séparé, ou peut être stocké près des superblocks d'un array qui a des superblocks. Il est possible d'ajouter un log à un array actif, ou de le supprimer.

Bad block list

   Chaque périphérique dans un array md peut stocker une liste de blocks défectueux connus. Cette liste a une taille de 4k et est généralement positionnée à la fin de l'espace entre le superblock et les données

   Quand un block ne peut pas être lu et ne peut pas être réparé en écrivant les données récupérées depuis les autres périphériques, l'adresse du block est stockée dans la liste des blocks défectueux. Similairement si une tentative d'écriture dans un block échoue, l'adresse sera enregistrée comme block défectueux. Si une tentative d'enregistrer le block défectueux échoue, tout le périphérique est marqué en erreur.

   Tenter de lire depuis un block défectueux génère une erreur de lecture. Tenter d'écrire dans un block défectueux connus est ignoré si des erreurs d'écriture ont été reportés par le périphérique. S'il n'y a pas d'erreur d'écriture, les données sont écrites dans le block et en cas de succès, l'adresse est supprimée de la liste.

Journal d'écriture RAID456

   Dû à la nature non-atomique des opérations d'écriture raid, d'interruption des opérations d'écriture (crash système, etc) sur un raid456 peut créer une inconsistance de parité et la perte de données. (également appelé RAID-5 write hole).

   md supporte l'écriture dans un journal. Quand l'array est créé, un périphérique journal additionnel peut être ajouté à l'array via l'option write-journal. Ce journal fonctionne comme les journaux des systèmes de fichier. Avant d'écrire les données sur disque, md écris les données et la parité du stripe dans le périphérique journal. Après un crash, md recherche dans le périphérique journal les opérations d'écritures incomplètes, et les écrit sur les disques.

   Quand le périphérique journal échoue, l'array est forcé en mode lecture-seule.

write-behind

   md supporte write-behind sur les arrays RAID1. Cela permet à certains périphériques dans l'array d'être flaggé write-mostly. MD ne lit dans ces périphériques seulement s'il n'y a pas d'autres options. Si un bitmap write-intend est également fournis, les requêtes d'écriture vers les périphérique write-mostly sont traités comme des requêtes write-behind et md n'attend pas que les écritures soient complétées avant de reporter l'écriture complétée au système de fichier.

   Cela permet à un RAID1 avec write-behind d'être utilisé comme donnée miroir sur un lien lent dans une machine distante. La latence supplémentaire de lien distant ne ralentira pas les opérations normales, mais le système distant continura à maintenir une copie raisonablement à jour de toutes les données

RESTRIPING

   re restriping, également appelé reshaping, est le processus de ré-arrangement des données stockées dans chaque stripe dans une nouvelle couche. Cela peut être dû au changement du nombre de disques dans l'array (donc les stripes sont plus long), changer la taille de chunk, ou changer l'arrangement des données et de la parité (possiblement changer le niveau de raid).

   md peut remodeler un raid4/5/6 pour avoir un nombre différent de disques et pour avoir un layout différent ou une taille de chunk différente. Il peut également convertir entre les différents niveaux de raid. Il peut également convertir entre raid0 et raid10, et entre raid0, raid4 ou raid5. D'autres possibilités peuvent suivre dans le future.

   Durant un traitement de stripe il y a une section critique durant lequel les données sont écrasées sur le disque. Pour l'opération d'augmentation du nombre de disques dans un raid5, cette section critique couvre les premier stripes (le nombre étant le produit de l'ancien et du nouveau nombre de disques). Une fois cette section critique passée, les données sont seulement écrite dans les aires de l'array qui ne maintient pas de données

   Pour un traitement qui réduit le nombre de périphériques, la section critique est à la fin du processus de reshaping.

   md n'est pas capable de s'assurer de la préservation des données s'il y a un crash durant la section critique. Si md doit démarrer un array qui a échoué durant une section critique, il refuse de démarrer l'array.

   Pour gérer ce cas, un programme userspace doit:

        - désactiver les écritures dans cette section de l'array (en utilisant l'interface sysfs)
        - Créer une copie des données
        - permettre au processus de continuer et invalider l'accès en écriture au backup et restauration une fois la section critique passée
        - fournir pour restorer les données critiques avant de redémarrer l'array après un crash.

   mdadm le fait pour les array raid5. Pour les opérations qui ne changent pas la taille de l'array, par exemple augmenter a taille de chunk, ou convertir un raid5 en raid6 avec un périphériques supplémentaire, tout le processus est la section critique. Dans ce cas, le restripe doit progresser en étapes, vu qu'une section est suspendue, backupée, restripée, et relachée.

Interface sysfs

   Chaque périphériques block apparaît dans sysfs. Pour les périphériques MD, ce répertoire va contenir un sous-répertoire 'md' qui contient divers fichiers pour fournir l'accès aux informations sur l'array.

   Cette interface est documentée dans Documentation/md.txt:

md/sync_speed_min Si définis, écrase le paramètre système dans /proc/sys/dev/raid/speed_limit_min pour cet array uniquement. La valeur 'system' force l'utilisation du paramètre système.
md/sync_speed_max Idem, pour /proc/sys/dev/raid/speed_limit_max
md/sync_action Peut être utilisé pour superviser et contrôler les processus de resynchro/récupération. Écrire check déclenche la vérification de la consistance de tous les blocks de données. Un compteur de problèmes est stocké dans md/mismatch_count. 'repair' peut être écrit pour vérifier et corriger les erreurs.
md/stripe_cache_size Seulement disponible pour un raid5/6. Enregistre la taille (en pages par périphérique) du cache de stripe qui est utilisé pour synchoniser toutes les opérations d'écriture dans l'array et toutes les opérations de lecture si l'array est dégradé. Défaut: 256 (de 17 à 32768). Augmenter cette valeur améliore les performances dans certaines situations, au prix d'une consommation mémoire système accrue (memory_consumed = system_page_size addentry articles autoadd autofind autoprod createalpha createbeta createdb createprod findentry fullpowa generator.php genhtml genman genmd gentex html insert man md pdf regen setfor setfor2 sql temp temp-new-pc tex threads ToDo nr_disks addentry articles autoadd autofind autoprod createalpha createbeta createdb createprod findentry fullpowa generator.php genhtml genman genmd gentex html insert man md pdf regen setfor setfor2 sql temp temp-new-pc tex threads ToDo stripe_cache_size)
md/preread_bypass_threshold Seulement disponible pour un raid5/6. Cette variable définis le nombre de fois que md effectue un full-stripe-write avant de servire un stripe qui nécessite une pré-lecture. défaut: 1 (de 0 à stripe_cache_size). À 0, maximise l'écriture séquentielle au prix de l'équité pour les threads qui effectuent de petites écritures ou des écritures aléatoires.

Paramètres kernel

raid=noautodetect Désactive l'auto-detection des array au boot. Si un disque est partitionné avec des partitions de style MSDOS, si une des 4 partitions primaires a le type 0xFD, cette partition est normalement inspectée pour voir si elle fait partie d'un array. Ce paramètre désactive cette détection.
raid=partitionable
raid=part Indique que les array auto-détectés devraient être créés comme arrays partitionnables, avec un numéro majeur différent des array non-partitionnables. Le numéro de périphérique est listé comme 'mdp' dans /proc/devices'
md_mod.start_ro=1
/sys/module/md_mod/parameters/start_ro md démarre tous les array en lecture seule. C'est un RO soft qui bascule automatiquement en lecture-écriture à la première requête d'écriture.
md_mod.start_dirty_degraded=1
/sys/module/md_mod/parameters/start_dirty_degraded ne démarre pas de raid4/5/6 qui est dégradé. Ce paramètre permet de forcer le démarrage de tels array au boot. (utile pour /)
md=n,dev,dev,...
md=dn,dev,dev,... Indique au pilote md d'assembler '/dev/md n' depuis les périphériques listés. Seulement nécessaire pour démarrer le périphérique maintenant le système de fichier racine.
md=n,l,c,i,dev... Indique au pilote md d'assembler un array RAID0 ou LINEAR dans superblock. 'n' donne le nombre de périphériques, 'l' donnele niveau (0=RAID0 ou -1=LINEAR), 'c' donne la taille de chunk en logarithme base-2 par 12, donc 0 indique 4k, 1 indique 8k. 'i' est ignoré.

Fichiers

/proc/mdstat Contient les informations sur le status de l'array en cours d'exécution
/proc/sys/dev/raid/speed_limit_min Reflète la vitesse courante de reconstruction quand l'activité de non-reconstruction est en cours dans un array. La vitesse est en Kio/s, et est un taux par périphérique. Défaut: 1000.
/proc/sys/dev/raid/speed_limit_max Reflète la vitesse courante de reconstruction quand aucune activité de non-reconstruction est en cours dans un array. Défaut: 200,000.
^
22 mai 2016

htmlpdflatexmanmd




mdmon

mdmon

Supervision des métadonnées md externes

   le kernel 2.6.27 ajoute le support des métadonnées externes. Ces métadonnées externes impliques que l'espace utilisateur gère toutes les mises à jours des métadonnées. La responsabilité du kernel est de notifier l'espace utilisateur quand un événement de métadonnées se produit, tels qu'une erreur disque. Le kernel, dans des cas importants, attends l'espace utilisateur pour prendre une action sur ces notifications.

Mises à jours des métadonnées

   mdmon est un service de mise à jours des métadonnées. mdmon requête l'espace de nom sysfs à la recherche de changements dans les attributs array_state, sync_action et state. Quand un changement est détecté il appel un handler par type de métadonnées pour effectuer les modifications sur les métadonnées. Les actions sont les suivantes:

array_state - inactif Efface le bit dirty pour le volume et laisse l'array stoppé
array_state - write pending Définis le bit dirty pour l'array puis met array_state à actif. Les écritures sont bloquées tant que les écritures de l'espace utilisateur sont actifs
array_state - active-idle Le timer safe mode a expiré pour l'array et définis l'état pour nettoyer les écritures de block dans l'array
array_state - clean Efface le bit dirty pour le volume
array_state - read-only État initial de tous les array au démarrage. mdmon prend une des 3 actions suivantes:

        1/ Transition de l'array vers read-auto conservant le bit dirty effacé si le handler de métadonnées détermine que l'array n'a pas besoin de resynchro ou autre modifications
        2/ Transition de l'array vers actif si le handler de métadonnées détermines qu'une resynchro ou autres manipulations est nécessaire.
        3/ Laisser l'array read-only si le volume est marqué à ne pas superviser.

sync_action - resync-to-idle Notify l'handler de métadonnées qu'une resynchro peut avoir fini. Si un processus de resynchro est en attente avant d'être complété, cet événement permet au handler de métadonnées de vérifier la resynchro
sync_action - recover-to-idle Un spare peut avoir finis la reconstruction donc indique au handler l'état de chaque disque. C'est l'opportunité de l'handler d'effacer les bits out-of-sync et le status dégradé du volume.
‹disk›/state - faulty Une erreur disque déclenche une série d'événements. D'abord, notify le handler qu'un disque a échoué, et notify le kernel qu'il peut débloquer les écritures qui étaient dépendant de ce disque. Ensuite le disque est mis à removed+ de l'array membre. Finallement le disque est marqué en erreur dans tous les autres array membre dans le conteneur.

Conteneurs

   Les formats de métadonnées externe, comme DDF, diffèrent des formats de métadonnées MD natifs dans le sens qu'ils définissent un jeu de disques et une série de sous-array dans ces disques. Les métadonnées en comparaison définissent une relation 1:1 entre un jeu de périphériques block et un array RAID. Par exemple, pour créer 2 array à différents niveaux RAID dans un simple jeu de disques, les métadonnées MD nécessitent que les disques soient partitionnés puis chaque array peut être créé avec un sous-jeu de ces partitions. Les formats externes supportés effectuent cet opération disques en interne.

   Les périphériques conteneur maintiennent simplement les références de tous les disques membre et permet aux outils mdmon de déterminer quels array actifs appartiennent à quel conteneur. Certaines commandes de gestion d'array comme la suppression ou l'ajout de disque sont seulement valides au niveau du conteneur. Les conteneurs sont identifiés dans /proc/mdstat avec une vversion de métadonnées "external:‹metadata name›". Les périphériques membres sont identifiés par "external:/‹container device›/‹member index›", ou "external:-‹container device›/‹member index›" si l'array est lecture seule.

Options

CONTAINER Le périphérique conteneur à superviser. Peut être un chemin complet comme /dev/md/container, ou un simple nom de périphérique md.
--foreground Ne lance pas en tâche de fond
--takeover Instruit mdmon de remplacer un service mdadm déjà en cours d'exécution
--all Trouve tous les conteneurs actifs et démarre le monitoring sur chacun d'entre-eux

Démarrage et arrêt

   mdmon doit être lancé quand un système de fichier dans le périphérique monitoré est monté avec des considérations spéciale quand le système de fichier root est monté depuis un périphérique mdmon supervisé. Noter qu'en général mdmon est nécessaire même si le système de fichier est monté en lecture seule. et certains systèmes de fichier restent en écriture dans ces circonstances, par exemple pour rejouer un journal après un arrêt non propre.

   Quand l'array est assemblé par le code initramfs, mdadm démarre automatiquement mdmon si requis. Cela signifie que mdmon doit être installé dans l'initramfs et doit il doit y avoir un système de fichier en écriture dans lequel mdmon peut créer un pid et un socket. Le système de fichier particulier à utiliser est donné à mdmon à la compilation. défaut: /run/mdadm.

   Une fois le système root instancié avec un pivot_root, mdmon devrait être lancé avec --all --takeover pour que le mdmon lancé dans l'initramfs puisse être remplacé.

   À l'arrêt, mdmon ne devrait pas être terminer avec les autres processus. Vu qu'il maintien un fichier ouvert dans /dev, il n'est pas possible de démonter /dev si c'est un système de fichie séparé

Exemples

Terminer le mdmon en cours d'exécution est terminé et une nouvelle instance est démarré:
mdmon --all-active-arrays --takeover
^
22 mai 2016

htmlpdflatexmanmd




mdadm.conf

mdadm.conf

Configuration pour mdadm

   Le fichier est une collection de mots séparés par un espace. Les mot utilisant un espace sont entre guillemet simple. Une ligne commençant par un espace sont considérés comme la suite de la ligne précédente. Les mots clé sont les suivants:

DEVICE une ligne device liste les périphériques ( ou les partitions) qui peuvent contenir un composant d'un array MD. En recherchant les composants d'un array, mdadm scanne ces périphériques. Une ligne device peut contenir plusieurs périphériques séparés par des espaces et peut contenir des wirdcard, ou les mots clés containers et partitions. Ce dernier force mdadm à lire /proc/partitions et à inclure tous les périphériques et partitions trouvés. mdadm n'utilise pas les noms dans /proc/partitions mais seulement les numéros majeur et mineur. Il scanne /dev pour trouver le nom qui matche les numéros. Si aucune ligne DEVICE n'est trouvée, assume "DEVICE partitions containers".

par exemple:
DEVICE /dev/hda* /dev/hdc* 
DEV /dev/sd* 
DEVICE /dev/disk/by-path/pci* 
DEVICE partitions

ARRAY Les lignes array identifient les arrays. le second mot peut être le nom du périphérique où l'array est normalement assemblé, tel que /dev/md1. Si le nom ne commence pas par un '/', il est traité comme relatif à /dev/md. le mot ‹ignore› peut être donné auquel cas un array qui matche le reste de la ligne n'est jamais automatiquement assemblé. Si aucun nom de périphérique n'est donné, mdadm détermine lui-même un nom approprié. les autres mots identifient l'array, ou l'array comme membre d'un groupe. Si plusieurs identités sont données, un périphérique composant doit matcher toutes les identité pour matcher. Chaque identité a un tag et une valeur. Les tags sont:

        uuid= doit correspondre à l'uuid stocké dans le superblock
        name= doit correspondre au nom stocké dans le superblock
        super-minor= numéro mineur stocké dans le superblock
        devices= Liste séparé par ',' de nom de périphérique ou motif. Seul ces périphériques seront utilisés pour assembler l'array. Ces périphériques doivent également être listés dans une ligne DEVICE
        level= Niveau de RAID. Pour compatibilité avec la sortie de mdadm --examine --scan
        num-devices= nombre de périphériques dans un array actif complet. Pour compatibilité avec la sortie de mdadm --examine --scan
        spares= Nombre de spares attendus dans l'array.
        spare-group= Nom textuel pour un groupe d'array. Tous les arrays avec le même nom de spare-group sont considérés comme étant du même groupe
        auto= indique si mdadm utiliser des array partitionnable ou non, en l'absence de udev. cette option n'est plus nécessaire
        bitmap= Fichier dans lequel un bitmap write-intent devrait être trouvé.
        metadata= Format des métadonnées de l'array
        container= spécifie que cette array est un array membre d'un conteneur. contient un chemin dans /dev ou l'uuid du conteneur
        member= Spécifie que cet array est un array membre d'un conteneur. identifie quel membre d'un conteneur appartient l'array.

MAILADDR Donne une adresse email pour les alertes à envoyer quand mdadm fonctionne en mode monitor
MAILFROM Adresse de l'émetteur du mail.
PROGRAM Donne le nom d'un programme à lancer quand mdadm --monitor détecte des événements potentiellement interressant.
CREATE Donne les valeurs par défaut à utiliser en créant les arrays et les nouveaux membres d'un array. inclus:

        owner=
        group= id user/group ou noms à utiliser. Défaut: root/wheel ou root/disk.
        mode= mode de fichier. Défaut: 0600
        auto= correspond à l'opion --auto de mdadm. Donne yes, md, mdp, part, pour indiques combien de périphériques d'entrée manquant devraient être créés
        metadata= Forma de métadonnées à utiliser
        symlinks=no Normalement, un line dans /dev est créé par mdadm avec un nom commençant par md ou md_. Supprime la création de ce lien
        names=yes Permet d'utiliser des noms arbitraires pour les périphériques md
        bbl=no à no, désactive la réservation de l'espace pour la liste des blocks défectueux

HOMEHOST devrait être un nom d'hôte ou les mots clés ‹system› (utilise gethostname(2)), ‹none› (n'assume aucun nom) ou ‹ignore› (Permet de définir un nom explicit à la création)
AUTO Une liste de noms de format de métadonnées peuvent être donnés, précédé par un '+' ou un '-'. homehost est également permis équivalent à all. (0.90, 1.x, ddf, imsm).
POLICY Spécifie le comportement automatique permis sur les nouveaux périphériques dans le système et fournis une manière de marquer les spares qui peuvent être déplacer entre les array comme domaine de migration. Les domaine peuvent être définis via les policy en spécifiant un nom de domain pour des chemins dans /dev/disk/by-path. Un périphérique peut appartenir à plusieurs domaines. Le domaine d'un array est l'union des domaines de tous les périphériques dans cet array. Un spare peut être automatiquement déplacé d'un array à un autre si le domaine de l'array de destination contient tous les domaines du nouveau disque ou si les array ont le même spare-group. Les mots clés dans les policy sont:

        domain= Chaine arbitraire
        metadata= 0.9 1.x ddf ou imsm
        path= glob de fichier correspondant à tout dans /dev/disk/by-path
        type= disk ou part
        auto= yes, no, ou homehost
        action= include, re-add, spare, spare-same-slot, ou force-spare:

                include Permet d'ajouter un disque à un array si les métadonnées dans ce disque matche cet array
                re-add Inclus le périphérique dans l'array s'il apparaît en être un membre ou qu'un membre a été récemment supprimé et l'array a un bitmap write-intent pour autoriser la fonctionnalité re-add
                spare Comme ci-dessus et si le périphérique est vide, il devient un spare s'il y a array qui est candidat.
                spare-same-slot comme ci-dessus et si le slot a été utilisé par un array qui est dégradé et que le périphérique n'a pas de métadonnées, il devient automatiquement membre de l'array (ou son conteneur)
                force-spare comme ci-dessus et le disque devient un spare dans tous les autres cas.

Exemple

DEVICE /dev/sdc1
DEVICE /dev/hda1 /dev/hdb1

ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
ARRAY /dev/md1 superminor=1
ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1
ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1
ARRAY /dev/md/home UUID=9187a482:5dde19d9:eea3cc4a:d646ab8b auto=part
ARRAY /dev/md9 name='Data Storage'

POLICY domain=domain1 metadata=imsm path=pci-0000:00:1f.2-scsi-* action=spare
POLICY domain=domain1 metadata=imsm path=pci-0000:04:00.0-scsi-[01]* action=include

MAILADDR root@mydomain.tld
PROGRAM /usr/sbin/handle-mdadm-events
CREATE group=system mode=0640 auto=part-8
HOMEHOST ‹system›
AUTO +1.x homehost -all
^
20 mai 2016

htmlpdflatexmanmd




autofs_ldap_auth.conf

autofs_ldap_auth.conf

Configuration ldap pour autofs

   Les binds ldap authentifiés avec des connexions TLS peuvent être utilisé avec les valeurs appropriés dans le fichier de configuration autofs et en configurant le client LDAP avec les paramètres appropriés. L'emplacement par défaut est /etc/autofs_ldap_auth.conf. Si ce fichier existe il est utilisé pour établir TLS et/ou l'authentification.

Exemple de configuration /etc/autofs_ldap_auth.conf
‹?xml version="1.0" ?›
‹autofs_ldap_sasl_conf
    usetls="yes"
    tlsrequired="no"
    authrequired="no"
    authtype="DIGEST-MD5"
    user="xyz"
    secret="abc"
/›
Exemple de configuration /etc/autofs_ldap_auth.conf
‹?xml version="1.0" ?›
‹autofs_ldap_sasl_conf
    usetls="yes"
    tlsrequired="no"
    authrequired="no"
    authtype="DIGEST-MD5"
    user="xyz"
    secret="abc"
/›

   Si le chiffrement TLS est utilisé, l'emplacement du certificat CA doit être définis dans la configuration du client LDAP. Si la connexion avec certificat est utilisé, le certificat et la clé privée doivent également être configurés dans le client LDAP.

   Ce fichier contient un simple élément XML, comme affiché dans l'exemple, avec de nombreux attributs

OPTIONS

usetls="yes"|"no" Utilise ou non tls pour les connexions
tlsrequired="yes"|"no" Impose tls pour les connexions
authrequired="yes"|"no"|"autodetect"|"simple" spécifie le mode d'authentification au serveur ldap
authtype="GSSAPI"|"LOGIN"|"PLAIN"|"ANONYMOUS"|"DIGEST-MD5|EXTERNAL" Spécifie le mécanisme d'authentification préferré. Si EXTERNAL est utilisé, 2 options sont requis: external_cert et external_key pour spécifier le certificat client et sa clé privée.
user="‹username›" Nom de l'utilisateur
secret="‹password›" Mot de passe de l'utilisateur
encoded_secret="‹base64 encoded password›" Mot de passe encodé en base64
clientprinc="‹GSSAPI client principal›" Détermine de principale pour l'authentification GSSAPI
credentialcache="‹external credential cache path›" Cache d'accréditifs pour le mécanisme GSSAPI
^
20 mai 2016

htmlpdflatexmanmd




auto.master

auto.master

map maître pour l'automonteur

   La map auto.master est consulté pour définir les points d'auto-montage quand automount est lancé. Chaque ligne décris un point de montage et réfère à une map autofs décrivant les systèmes de fichier à monter sous le point de montage.

   L'emplacement par défaut est /etc/auto.master. Si le nom de la map maître n'a pas de chemin, la configuration NSS sera consultée. L'accès aux montage dans le map sont gouvernés par une clé. Pour les mappages direct, le point de montage spécifié est '/-' et la clé utilisé est le chemin comple du point de montage. La map directe peut avoir plusieurs entrée dans la map maître. L'accès aux map indirectes est faite avec '/mount-point/key' où mount-point est une des entrées listées dans la map maître. La clé est un répertoire et est matché avec les entrées dans la map donnée dans l'entrée et est matché avec les entrées dans la map donnée dans l'entrée.

Additionnellement, une map peut être incluse depuis sa source comme si elle était présente dans la map maître en incluant une ligne sous la forme:
+[maptype[,format]:]map [options]
et automount traite la map en accord avec la spécification décrite ci-dessous pour les entrées de map. Les entrées de map indirecte doivent être uniques dans la map maître pour que les entrées suivante ou sous-jacentes d'un montage indirect soient ignorés par automount.

Format

   Les entrées de map maître ont 3 champs séparés par des espaces. Le premier champs est le point de montage, et le second est le nom de la map à consulter. Le 3ème champ contient les options à appliquer à toutes les entrées dans la map.

Le format d'une entrée de map maître est:
mount-point [map-type[,format]:]map [options]
où:

mount-point Est l'emplacement de base pour monter le système. Pour les map indirectes ce répertoire sera créé et supprimé quand il est monté/démonté par autofs.
map-type Type de map utilisé pour le point de montage. Les types de map valides sont:

        file La map est un fichier texte
        program La map est un programme exécutable, qui reçoit un clé et retourne une entrée
        yp La map est une base NIS
        nisplus La map est une base NIS+
        hesiod La map est une base hesiod dont les entrées filsys sont utilisées pour les maps
        ldap ou ldaps La map est stockée dans un annuaire ldap.
        multi Permet de spécifier plusieurs map séparés par "--". Ces maps sont recherchées dans l'ordre pour résoudre les clé. Le contenu du répertoire est inclus à la map maître. Le nom du fichier à inclure doit être terminé par .autofs.

format Le format des données de map (sun, hesiod, amd). Défaut: sun
map Nom de la map à utiliser.
options Options passées à mount. Les options commençant par '-' sont passées à automount. Le format sun supporte les options suivantes:

        -Dvariable=value Substitution de variable
        -strict Traite les erreurs de montage comme fatal.
        [no]browse permet de pré-créer les répertoires de montage pour les map indirecte pour que les clé de map puissent être vu dans le répertoire sans être montés. Peut induire des problèmes de performance.
        nobind Peut être utilisé soit dans l'entrée de map maître ou dans les entrées individuelles, pour empecher les montages de systèmes NFS locaux.
        symlink Les montages utilisent un lien au lieu du montage (map indirect uniquement)
        -r, --random-multimount-selection Active l'utilisation de la sélection aléatoire en choisissant un hôte dans la liste des serveurs répliqués.
        -w, --use-weight-only Utilise seulement les poids pour la sélection de serveur, quand plus d'un serveur est spécifié dans l'entrée de map.
        -t, --timeout ‹seconds› timeout pour les entrées de map.
        -n, --negative-timeout ‹seconds› Définis le timeout pour les recherches de clé échouée en cache.

Map intégrée -hosts

   Si "-hosts" est donnée comme map, l'accès à une clé sous ce point de montage correspondant au hostname autorise l'accès aux exports de cet hôte. Les map hosts ne peuvent pas être mis à jours dynamiquement et nécessitent un signal HUP pour vérifier les mises à jours. Par exemple, avec une entrée dans la map maître "/net -hosts" accédant à /net/myserver" monte les exports de myserver dans les répertoires sous /net/myserver.

   Note: les montages fait depuis une map hôte vont être montés avec les options "nosuid,nodev,intr" sauf si définis explicitement dans l'entrée de map maître.

Maps LDAP

   Si le type de map ldap est spécifié le nom de la map est sous la forme [//servername/]dn, où servername est le nom d'un serveur ldap, et dn est le nom distinct d'une sous-arborescence de recherche. l'ancien style est également supporté (ldap:server:name:mapname). Alternativement, le type peut être obtenu depuis la configuration NSS, auquel cas le nom de la map seule doit être donnée.

   Si aucun schema n'est donné dans la configuration autofs, alors autofs vérifie chaque schéma communément utilisé pour une entrée valide et si une est trouvée elle sera utilisée pour les recherches suivantes. Il y a 3 type de schemas communément utilisé:

nisMap Les entrées dans le schéma nisMap sont des objets nisObject dans le subtree spécifié. où l'attribut cn est la clé (la clé wildcard est "/"), et l'attribut nisMapEntry contient les informations utilisées par l'auto-monteur.
automountMap Ce schémat a 2 variantes qui diffèrent dans l'attribut utilisé pour la clé de map. Les entrées dans le schéma automountMap sont des objets automount dans le subtree spécifié, où cn et automountKey est la clé, et automountInformation contient les informations utilisées par l'automounter.
amdMap Le schéma amdMap contient les attributs amdmapName, amdmapKey et amdmapValue.

Authentification LDAP, connexions chiffrées et certifiées

   Les binds ldap authentifiés avec des connexions TLS peuvent être utilisé avec les valeurs appropriés dans le fichier de configuration auofs et en configurant le client LDAP avec les paramètres appropriés. L'emplacement par défaut est /etc/autofs_ldap_auth.conf. Si ce fichier existe il est utilisé pour établir TLS et/ou l'authentification.

Exemple de configuration /etc/autofs_ldap_auth.conf
‹?xml version="1.0" ?›
‹autofs_ldap_sasl_conf
    usetls="yes"
    tlsrequired="no"
    authrequired="no"
    authtype="DIGEST-MD5"
    user="xyz"
    secret="abc"
/›

   Si le chiffrement TLS est utilisé, l'emplacement du certificat CA doit être définis dans la configuration du client LDAP. Si la connexion avec certificat est utilisé, le certificat et la clé privée doivent également être configurés dans le client LDAP.

   Dans OpenLDAP, c'est configuré dans ldap.conf, ou dans une configuration par utilisateur. Par exemple on peut utiliser la configuration système pour les certificats d'autorité, et définir le certificat client par utilisateur.

Exemples

/- auto.data
/home /etc/auto.home
/mnt yp:mnt.map

   Cela va auto-générer 2 points de montage pour /home et /mnt et installer les déclencheurs de montage direct pour chaque entrée dans la map de montage directe auto.data. Les accès à /home seront consultés dans la map auto.home, et les accès à /mnt seront consultés dans mnt.map. tous les accès aux chemins dans auto.data seront montés quand ils sont accédés et NSS sera utilisé pour localiser la source de la map auto.data
^
20 mai 2016

htmlpdflatexmanmd




autofs

autofs

Format des maps d'automontage

   Les maps d'auto-montage sont FILE, NIS, NISPLUS ou LDAP référencés par la map maître auto.master. Ces maps décrivent comment les systèmes de fichiers sous le point de montage de la map sont montés. Cette documentation décris le format sun; si un autre format, autre que amd, est spécifié, cette documentation ne s'applique pas.

Format SUN

key [-options] location
key Pour les montages indirectes c'est la partie du nom de chemin entre le point de montage et le chemin dans le systèmes de fichier quand il est monté. Généralement on peut penser que la clé est un sous-répertoire sour le point de montage. Pour les montages direct, c'est le chemin complet de chaque point de montage. Cette map est toujours associée avec le point de montage /- dans la map maître.
options 0 ou plusieurs options peuvent être données. Les options peuvent également être données dans le fichier auto.master auquel cas les valeurs sont cumulées. Les options sont une liste d'options séparée par une ','.

        -fstype= utilisé pour spécifier un type de système de fichier si le système de fichier n'est pas le type NFS. Cette option est traitée par l'auto-monteur, et non par la commande mount.
        -strict Utilisé pour traiter les erreurs en montant les systèmes de fichier comme fatal, c'est important quand plusieurs systèmes de fichiers devraient être montés. Si l'option est données, aucun système de fichier n'est monté si au moins un système de fichier ne peut être monté.
        -use-weight-only Utilisé pour faire le poid du seul facteur dans le choix du serveur lorsque plusieurs serveurs sont présents dans une entrée de map.
        -no-use-weight-only Peut être utilisée pour inverser l'option si présent dans l'entrée de map maître.

   L'emplacement spécifie d'où le système de fichier est monté. Dans la plupart des cas ce sera un volume NFS et la notation courante est host:pathname. Si le système à monté commence avec un / (comme les entreés /dev ou les partages smbfs), un : doivent être préfixé (exemple: :/dev/sda1).

Exemples

Maps indirectes:
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
boot -fstype=ext2 :/dev/hda1
windoze -fstype=smbfs ://windoze/c
removable -fstype=ext2 :/dev/hdd
cd -fstype=iso9660,ro :/dev/hdc
floppy -fstype=auto :/dev/fd0
server -rw,hard,intr / -ro myserver.me.org:/ /usr myserver.me.org:/usr /home myserver.me.org:/home

   Sur la première ligne, on a un montage NFS du répertoire ftp.kernel.org. C'est monté en lecture seule. La seconde ligne monte un volume ext2 depuis un volume local. La 3ème ligne créé un partage exporté depuis une machine Window$ disponible pour l'auto-montage. Le reste devrait être compréhensible. Le dernière entrée est un example d'un multi-map.

Dans un automontage sur un système de fichier sans permissions d'accès (ex: vfat), les utilisateurs ne peuvent pas écrire sur ce système de fichier parce qu'il est monté en root. On peut résoudre cela en passant l'option gid=‹gid›:
floppy-vfat -fstype=vfat,sync,gid=floppy,umask=002 :/dev/fd0

Maps directs:
/nfs/apps/mozilla bogus:/usr/local/moxill
/nfs/data/budgets tiger:/usr/local/budgets
/tst/sbin bogus:/usr/sbin

Fonctionnalités

Substitution de clé Un caractère '&' dans l'emplacement est étendu à la valeur du champ clé qui matche la ligne
Clé wildcart '*' dénote une entrée wildcard. Cette entrée est consultée si la clé spécifiée n'existe pas dans la map. Une telle entrée ressemble à: * server:/export/home/&
Substitution de variable Les variables spéciales suivantes seront substituées dans le champs emplacement d'une entrée de map si préfixé avec un $.:

        ARCH uname -m
        CPU Type de processeur
        HOST uname -n
        OSNAME uname -s
        OSREL uname -r
        OSVERS uname -v
        USER Login de l'utilisateur
        UID UID de l'utilisateur
        GROUP Nom du groupe
        GID GID du groupe
        HOME Répertoire home de l'utilisateur
        SHOST Hostname non fqdn

   Si un program map est utilisé avec ces variables d'environnement, elles seront préfixées avec "AUTOFS_" pour empêcher certains programmes comme python de charger et d'exécuter du code arbitraire depuis un répertoire utilisateur.

Maps exécutables Une map peut être marquée exécutable. Un program map est appelé avec la clé en argument. Il ne retourne rien en cas d'erreur, ou un code d'erreur, ou une ou plusieurs lignes d'une entrée de map.
Montages multiple Une map multi-mount peut être utilisée pour nommer plusieurs systèmes de fichiers à monter, sous la forme: key [ -options ] [[/] location [/relative-mount-point [ -options ] location...]....
Serveurs répliqués Un emplacement de montage peut spécifier plusieurs hôtes, potentiellement avec un chemin d'export différent pour le même système de fichier. Historiquement, cet emplacements sont lecture seul et fournissent le même système de fichier répliqué:

Plusieurs hôtes, même chemin:
‹path› host1,host2,hostn:/path/path
Plusieurs hôtes, certains avec le même chemin, d'autres noms:
‹path› host1,host2:/blah host3:/some/other/path
Plusieurs hôtes répliqués, différents chemins:
‹path› host1:/path/pathA host2:/path/pathB
Avec un poid, même chemin:
‹path› host1(5),host2(6),host3(1):/path/path
Avec un poid, chemins différents:
‹path› host1(3):/path/pathA host2(5):/path/pathB
Une variation qui fonctionne également:
‹path› host1(3),host:/blah

Format AMD

key location-list
key Chemin. peut être '*'.
location-list emplacement des points de montages (syntaxe: location[ location[ ... ]] [|| location[ location[ ... ]]). || permet de spécifier d'autres emplacements à tester si l'emplacement n'est pas disponible.

   un emplacement de montage consiste d'une liste optionnellement séparée par ':', suivi par une liste séparée par ':' de paires option:=valeur. Le sélecteur qui peut être utilisé retourne une valeur ou un booléen. Ceux qui retournent une valeur peuvent être utilisé avec les opérateurs de comparaison == et != et ceux qui retoure un résultat booléen peuvent être inversés avec !.

   Pour un emplacement soit sélectionné, tous ses sélecteurs doivent s'évaluer à true. De plus, certains sélecteurs ne prennent pas d'argument et d'autre, optionnelement 2 arguments. Les sélecteurs sans arguments sont:

        arch Architecture de la machine
        karch Architecture du kernel
        os Nom de l'os
        osver Version de l'os
        full_os nom comple de l'os
        vendor Nom du vendeur de l'os
        byte Endianness du matériel
        cluster Nom du cluster local (a une valeur qui ne peut être définis que dans la configuration)
        autodir Chemin de base où sont effectués les montages externes si nécessaire.
        domain Nom de domaine local
        host Nom de l'hôte
        hostd Nom complet de l'hôte
        UID UID de l'utilisateur
        gid GID de l'utilisateur
        key Valeur de la clé à rechercher
        map Valeur du nom de la map pour rechercher key
        path Chemin complet du montage
        dollar le caractère '$'

   Les sélecteurs qui prennent un argument sont:

        in_network(network), network(network), netnumber(network), wire(network) Ces sélecteurs sont similaires. L'argument est une adresse ou un nom de réseau. La fonction compare cet argument avec chaque interface et retourne true si le réseau appartient au réseau.
        xhost(hostname) Compare hostname à ${host} et s'il match, tente de rechercher le nom canonique de hostname et le compare à {host}.
        exists(filename) vrai si filename existe
        true() Évalue à vrai
        false() Évalue à faux

   Les sélecteurs qui prennent jusqu'à 2 arguments:

        netgrp(netgroup[,hostname]) Retourne vrai si hostname est un membre du netgroup spécifié. Si hostname n'est pas spécifié, ${host} est utilisé
        netgrpd(netgroup[,hostname]) Identique, mais le hostname fqdn est utilisé au lieu de ${host}

   Les options qui peuvent être utilisées sont:

        type Type de système de fichier à monter (auto, link, linkx, host, lofs, ext2-4, xfs, nfs, nfsl, cdfs).
        maptype Spécifie le type de source de map (file, nis, nisplus, exec, ldap, hesiod).
        fs Spécifie le système de fichier local. Dépendant du type.
        rhost L'hôte distant pour les requêtes réseau
        rfs Chemin du système de fichier de l'hôte distant
        dev Doit résoudre le système de fichier local
        sublink spécifie un sous-répertoire dans l'emplacement de montage pour laquelle cette entrée va pointer
        pref Spécifie un préfixe à ajouter à la clé de recherche avant de rechercher l'entrée de map
        opts Spécifie les options de montage à utiliser par mount. '-' pour ignorer.
        addopts Options de montage additionnels
        remopts Spécifie les options de montage au lieu de opts quand l'emplacement de montage est sur le réseau

Fonctionnalités

key Matching La clé à rechercher est construit en ajoutant le préfixe s'il y a un. Le chemin relatif résultant est matché en essayant d'abord la chaîne elle-même. S'il n'y a pas de match, le dernier composant le la clé est remplacée avec le caractère '*'. Le processus continue jusqu'à ce qu'un match soit trouvé.
Macro Usage De nombreuses valeurs d'options sont définies comme variables correspondant au nom de l'option durant la recherche d'entrée de map. Elles peuvent être utilisé dans d'autres valeurs d'option (attention à l'ordre de ces options)

Exemples

Supposont une entrée de map maître:
/test file,amd:/etc/amd.test
Et la map suivante /etc/amd.test:
/defaults type:=nfs;rhost:=bilbo
apps rfs:=/autofs
util rhost:=zeus;rfs:=/work/util
local rfs:=/shared;sublink:=local

   Dans la première ligne on a un montage distant NFS du répertoire exporté /autofs depuis l'hôte bilbo qui sera monté dans /test/apps. Un autre montage pour le répertoire exporté /work/util depuis l'hôte zeus. Il sera monté dans /test/utils.

  Finallement on a un exemple de l'utilisation de l'option sublink, où filbo:/shared sera monté dans un chemin externe au répertoire d'automontage (sous le répertoire donné par l'option auto_dir) et le chemin /test/local.
^
20 mai 2016

htmlpdflatexmanmd




automount

automount

Gestion des points de montage autofs

   Le programme automount est utilisé pour gérer les points de montage pour autofs. automount fonctionne en lisant la map auto.master et définis les points de montage pour chaque entrée dans le master leur permettant d'être automatiquement montés quand ils sont accédés. Les systèmes de fichier sont automatiquement démontés après une certaine période d'inactivité.

OPTIONS

-p, --pid-file Écrit de pid dans le fichier spécifié
-t ‹seconds›, --timeout ‹seconds› Définir le timeout minimum global, en secondes, avant que les répertoires soient démontés. Défaut: 10minutes. 0 désactive le démontage.
 -n ‹seconds›, --negative-timeout ‹seconds› Définis le timeout par défaut pour les recherches de clé échouée en cache. Défaut: 60secondes
-v, --verbose Active le logging des messages de status et de progression
-d, --debug Idem à -v avec les messages de debug
-Dvariable=value, --define variable=value Définis une variable de substitution globale.
-f, --foreground Ne lance pas en tâche de fond et log sur stderr au lieu de syslog
-r, --random-multimount-selection Active l'utilisation de sélection aléatoire en choisissant un hôte depuis une liste de serveurs répliqués
-m, --dumpmaps [‹map type› ‹map name›] Sans paramètres, liste les informations sur les maps configuré, puis quitte. Si une option est données, suivie par 2 paramètres, "‹map type› ‹map name›", les paires clé-valeur sont lus et affichés sur stdout. Si la map est une map ldap et qu'il y a plus d'une mappe dans différentes bases dns seule la première map rencontrée est listée.
-O, --global-options Permet la spécification d'options de montage global utilisé pour toutes les entrées de map maître. Ces options remplacent ou sont ajoutées aux options données à une entrée de map maître en fonction du paramètre APPPEND_OPTIONS
-l, --set-log-priority priority path [path,...] Définis la priorité de log du service
-C, --dont-check-daemon Ne vérifie par si le service est déjà en cours de fonctionnement
-F, --force Force le démontage d'un montage existant au démarrage.

Arguments

   automount prend un argument optionnel, le nom de la map maître

signaux

USR1 Démonte tous les systèmes de fichier gérés non-utilisé et continue ses opérations
TERM Démonte tous les systèmes de fichier gérés non-utilisés et quitte
USR2 Démonte tous les systèmes de fichier et quitte

Notes

   Si un répertoire de point de montage autofs est occupé quand le service reçoit un signal pour quitter, il ne quitte pas, sauf avec USR2. Si des automontages sont trouvés déjà montés au démarrage, il sont récupérés sauf s'il ne sont plus présents dans la map auquel cas il doivent être démontés manuellement.
^
20 mai 2016

htmlpdflatexmanmd




autodir

autodir

Gérer les répertoires personnels

   autodir est une commande pour organiser les répertoires personnels, généralement pour les comptes utilisateur depuis une base centralisée comme ldap. Il a également une fonctionnalité de sauvegarde transparente.

OPTIONS

-d DIR Spécifie le répertoire de base; le point de montage pour le système de fichier autofs. S'il n'existe pas, il sera créé. Doit être un chemin absolu
-t SECONDS temp d'expiration pour les répertoires virtuels. S'il est inactif durant ce délai, il est démonté
-m MODULE Module à utiliser avec autodir. Doit être un chemin absolu
Ne termine pas le processus de sauvegarde, attend qu'il se termine
-N Ne termine pas le processus de sauvegarde, mais n'attend pas qu'il se termine
-o SUBOPTS Options à passer au module. ces options sont similaires aux options passées à mount avec -o
-f ne lance pas en tâche de fond et log tous les message sur la console
-l FILE Chemin complet d'un fichier dans lequel autodir écris sont pid
-v mode verbeux
-b PROG Spécifie le programme à utiliser pour les sauvegardes, ainsi que ses options. Doit être un chemin absolu.
-w SECONDS Quand un répertoire virtuel n'est pas utilisé, il est démonté, puis une sauvegarde est immédiatement démarrée. Cette option spécifie d'attendre avant de démarrer la sauvegarde. Non spécifié, démarre immédiatement.
-p NUMBER Priorité du processus de sauvegarde. Défaut: 30 (1-40)
-c NUMBER Restreint le nombre de processus de sauvegarde simultanné. Défaut: 150
^
31 mars 2016

htmlpdflatexmanmd




/etc/incron.conf

/etc/incron.conf

Fichier de configuration pour incron

   Ce fichier contient les paramètres par défaut pour incrond.

system_table_dir Ce répertoire contient les tables système. Défaut: /etc/incron.d
user_table_dir Ce répertoire contient les tables utilisateur. Défaut: /var/spool/incron
allowed_users Ce fichier contient les utilisateurs autorisés à utiliser incron. Défaut: /etc/incron.allow
denied_users Ce fichier contient les utilisateurs non autorisés à utiliser incron. Défaut: /etc/incron.deny
lockfile_dir Ce répertoire est utilisé pour créer un lock pour éviter de lancer plusieurs instances de incrond. Défaut: /var/run
editor Nom de l'éditeur à utiliser pour éditer les tables.

^
31 mars 2016

htmlpdflatexmanmd




table-incrontab

table-incrontab

tables pour incron

   un fichier incrontab contient des instructions pour le service incrond et a la forme générale: "lance cette commande sur ces événements fichier". Il y a 2 catégories de table: les tables système et les tables utilisateurs.

   Les tables système sont par défaut sous /etc/incron.d. Chaque utilisateur a sa propre table, et les commandes sont exécutés sous cet utilisateur. Les utilisateurs système peuvent avoir leur propre incrontab. Les fichiers incrontab sont lus quand le service incrond démarre et après tout changement.

   La forme générale est la suivante: ‹path› ‹mask› ‹command›

  où

path est un chemin absolu
mask est un masque d'événements (sous la forme symbolique ou numérique)
command Est une commande à exécuter

Symboles d'événements

IN_ACCESS accès au fichier
IN_ATTRIB Changement des méta-données
IN_CLOSE_WRITE Ficher ouvert en écriture fermé
IN_CLOSE_NOWRITE Fichier non ouvert en écriture fermé
IN_CREATE Fichier créé sous le répertoire
IN_DELETE Fichier supprimé sous le répertoire
IN_DELETE_SELF Fichier supprimé
IN_MODIFY Fichier modifié
IN_MOVE_SELF Fichier déplacé
IN_MOVED_FROM Ancien emplacement du fichier déplacé
IN_MOVED_TO Nouvel emplacement du fichier déplacé
IN_OPEN Fichier ouvert
IN_AL_EVENTS Tous les événements
IN_MOVE = ( IN_MOVED_FROM | IN_MOVED_TO )
IN_CLOSE = ( IN_CLOSE_WRITE | IN_CLOSE_NOWRITE )
IN_DONT_FOLLOW Ne pas déréférencer le chemin si c'est un lien symbolique
IN_ONESHOT surveille pour un seul événement
IN_ONLYDIR Surveille seulement si c'est un répertoire

Variables

   Les variables suivantes peuvent être utilisées dans le commandes:

$$ le caractère '$'
#@ Chemin surveillé
$# Événement
$% Flags d'événements (textuel)
$& Flags d'événements (numérique)

Exemples

Surveille tous les événements dans /tmp
/tmp IN_ALL_EVENTS abcd $@/$# $%
Supervise les accès dans /usr/bin
/usr/bin IN_ACCESS,IN_NO_LOOP abcd $#
Suprrvise les nouveaux fichiers créés sous home
/home IN_CREATE /usr/local/bin/abcd $#
Exemple en utilisant un masque numérique
/var/log 12 abcd $@/$#
^
31 mars 2016

htmlpdflatexmanmd




incrontab

incrontab

Manipulateur de table pour incrond

   incrontab est un manipulateur de table pour incron. Il créé, supprime, modifie et liste les tables utilisateurs. Chaque utilisateur, incluant les utilisateurs systèmes ont une table incron qui ne peut pas être manipulée directement. Seul root peut le faire, mais ce n'est pas recommandé. Tous les messages d'information de ce programme sont affichés sur l'erreur standard

OPTIONS

-u, --user Remplace l'utilisateur courant (réel) avec celui donné.
-l, --list Affiche la table courante sur la sortie standard
-r, --remove Supprime la table courante sans confirmation
-e, --edit Exécute un éditeur pour éditer la table courante
-t, --types Affiche la liste de types d'événements supportés sur la sortie standard
-d, --reload Recharge la table courante dans incrond
-f, --config= Emplacement du fichier de configuration. Défaut: /etc/incron.conf
^
31 mars 2016

htmlpdflatexmanmd




incrond

incrond

Service cron inotify

   incrond est un service qui supervise les événements du système de fichier et exécute des commandes définies dans les tables système et utilisateur. Son utilisation est similaire à crond

   incrond utilise 2 catégories de tables incrontab(5). Les tables système sont généralement localisées dans /etc/incron.d et sont maintenus en dehord de incron. Ces tabbles fonctionne avec les privilèges root et tout fichier et lu et les commandes exécutés par root

   Les tables utilisateur sont localisées dans /var/spool/incron par défaut et ont des noms basés sur les comptes utilisateur. Ces tables utilisent les droits d'accès de l'utilisateur.

   Si une table est changé incrond réagit immédiatement et recharge la table.

   Il y a 2 fichiers déterminant si un utilisateur est autorisé à utiliser incron, /etc/incron.allow et /etc/incron.deny.

   Le service lui-même n'est actuellement pas protégé contre le bouclage. Si une commande est exécuté dû à un événement qui déclenche le même événement, il boucle indéfiniment, sauf si un masque contenant IN_NO_LOOP est spécifié.

OPTIONS

-n, --foreground ne lance pas en tâche de fond
-k, --kill Termine une instance en cours
-f, --configfile=‹file› Emplacement du fichier de configuration. Défaut: /etc/incron.conf
^
31 mars 2016

htmlpdflatexmanmd




iwatch

iwatch

Monitoring de système de fichier en temps réel utilisant inotify

   iWatch est un outil Perl pour inotify pour superviser les changements dans des répertoires et fichiers spécifiques, en envoyant des alarmes à l'administrateur système en temps réel. Il peut:

- Envoyer des notifications via des email sur les changements
- Exécuter les actions programmables immédiatement
- Agir comme un HIDS (Host-based Intrusion Detection System) ou un vérificateur d'intégrité

   iWatch peut être lancé comme service pour comme simple commande. Le mode service utilise un fichier de configuration xml. Le mode ligne de commande n'utilise pas de fichier de configuration.

   Dans le fichier de configuration, chaque cible peut avoir son propre email de contact.

Options pour le mode service

-d Mode service
-f Spécifie le fichier de configuration. Défaut: /etc/iwatch/iwatch.xml
-p Fichier pid à utiliser. Défaut: /var/run/iwatch.pid
-v mode verbeux

Options pour le mode ligne de commande

-c Spécifie la commande à exécuter
-C Spécifier l'encodage. Défaut: utf-8
Spécifie une liste d'événements à monitorer
-m Adresse email de contact
-r Recherche récursivement dans un répertoire
-s on|off Active/désactive les rapports à syslog. Défaut: off
-t Spécifie un filtre (regex) à comparer avec le nom de fichier ou du répertoire.
-v mode verbeux
-x Spécifie un fichier ou répertoire exclus
-X Similaire mais en utilisant une expression régulière

Chaînes pour la commande

   En utilisant l'option -c, ces chaînes sont disponible:

%c Event cookie number
%e Nom de l'événement
%f Chemin complet du fichier
%F L'ancien nom du fichier (moved_to)
%p Nom du programme (iWatch)
%v Numéro de version

Événements

   Les événements suivant sont possibles pour l'options -e:

access Le fichier est accédé
attrib Les attributs sont changés
close Le fichier est fermé
close_nowrite fichier fermé après avoir été ouvert en mode lecture-seule
close_write fichier fermé après avoir été ouvert en mode lecture écriture
create Fichier créé dans le répertoire
delete Fichier supprimé dans le répertoire
delete_self Le fichier supervisé a été supprimé
ignored Le fichier a été ignoré
isdir en événement s'est produit avec le repertoire
modify Le fichier a été modifié
move un fichier/répertoire dans le répertoire recherché a été déplacé
moved_from Un fichier a été déplacé depuis
moved_to Un fichier a été déplacé vers
oneshot Seulement avoyé une fois
open Le fichier a été ouvert
q_overflow La file d'événement déborde
unmount Le système de fichier sur lequel le fichier existe a été démonté
default = close_write, create, delete, move, delete_self et move_self
all_events Tous les événements

Exemples

Monitor les changements dans le /tmp avec les événements pas défaut:
iwatch /tmp
Monitor seulement les événements access et create dans /etc, récursivement, à l'exception de /etc/mail, et envoie un mail à root@example.com
iwatch -r -e access,create -m root@example.com -x /etc/mail /etc
Monitor /bin récursivement, et exécute les commandes w et ps -ef
iwatch -r -c (w;ps -ef)|mail -s '%f was changed' root@localhost /bin
Monitor ~/projects, excluant les répertoires .svn.
iwatch -r -X '.svn' ~/projects

Exemple de fichier de configuration
‹?xml version="1.0" ?›
    ‹!DOCTYPE config SYSTEM "/etc/iwatch/iwatch.dtd" ›
    
‹config›
    ‹guard email="root@example.com" name="iWatch"/›
    ‹watchlist›
    ‹title›WEB server integrity monitoring‹/title›
    ‹contactpoint email="someone@example.com" name="Administrator"/›
        ‹path type="recursive" syslog="on" alert="off" exec="echo %p: %e %f | /usr/bin/sendxmpp -t foo@jabber-br.org"›/var/www‹/path›
        ‹path type="exception"›/var/www/counter‹/path›
    ‹/watchlist›
‹/config›

   Les 2 premières lignes définissent la version XML et le fichier qui définis le motif utilisé par iWatch (défaut: /etc/iwatch/iwatch.dtd).

   La déclaration ‹config› est utilisé pour marquer le port de départ de la configuration. La ligne guard email est utilisée pour spécifier l'email et le nom du champ From:. watchlist délimite un block de définitions à superviser. La déclaration watchlist peut être spécifié plusieurs fois.

   title est utilisé pour ajouter un titre pour identifier le block. contactpoint est l'email du contact. path peut monitorer un fichier/répertoire ou exécuter des actions.

Autre exemple possédant 3 watchlist:
‹?xml version="1.0" ?›
‹!DOCTYPE config SYSTEM "iwatch.dtd"›
    
‹config›
    ‹guard email="admin@localhost" name="iWatch"›‹/guard›
    ‹watchlist›
        ‹title›Public Website‹/title›
        ‹contactpoint email="webmaster@example.com" name="WebMaster"/›
        ‹path type="single"›/var/www/localhost/htdocs‹/path›
        ‹path type="single" syslog="on"›/var/www/localhost/htdocs/About‹/path›
        ‹path type="recursive"›/var/www/localhost/htdocs/Photos‹/path›
    ‹/watchlist›
    ‹watchlist›
        ‹title›Operating System‹/title›
        ‹contactpoint email="admin@localhost" name="Administrator"/›
        ‹path type="recursive"›/etc/apache2‹/path›
        ‹path type="single"›/etc/passwd‹/path›
        ‹path type="recursive"›/etc/mail‹/path›
        ‹path type="exception"›/etc/mail/statistics‹/path›
        ‹path type="single" filter="shadow|passwd"›/etc‹/path›
    ‹/watchlist›
    ‹watchlist›
        ‹title›Only Test‹/title›
        ‹contactpoint email="root@localhost" name="Administrator"/›
        ‹path type="single" alert="off" exec="(w;ps -ef)|mail -s %f root@localhost"›/tmp/dir1‹/path›
        ‹path type="single" events="access,close" alert="off" exec="(w;ps -ef)|mail -s %f root@localhost"›/tmp/dir2‹/path›
        ‹path type="single" events="default,access" alert="off" exec="(w;ps -ef)|mail -s '%f is accessed' root@localhost"›/tmp/dir3‹/path›
        ‹path type="single" events="all_events" alert="off"›/tmp/dir4‹/path›
    ‹/watchlist›
‹/config›

^
31 mars 2016

htmlpdflatexmanmd




inotifywatch

inotifywatch

Affiche des statistiques d'accès au système de fichier en utilisant inotify

   inotifywatch écoute les événements des systèmes de fichiers en utilisant inotify, et affiche un compteur d'événements reçus pour chaque fichier ou répertoire. Certaines informations s'affiche sur l'erreur standard

OPTIONS

-v, --verbose mode verbeux
@‹file› Exclus le fichier spécifié dans le répertoire surveillé
--fromfile ‹file› Lit les noms de fichier à surveiller ou exclure depuis un fichier, un fichier par ligne. '@' comme préfixe exclus de fichier, si le fichier spécifié est '-', les fichiers sont lus depuis l'entrée standard
-z, --zero Affiche les lignes et colonnes même s'il n'y a pas d'élément
--exclude ‹pattern› Ne traite pas les événements des fichiers dont le nom matche le regex spécifié, sensible à la casse
--excludei ‹pattern› idem, insensible à la casse
-r, --recursive Surveille tous les sous-répertoires dans tous les répertoires passés en argument
-t ‹seconds›, --timeout ‹seconds› Quitte si un événement approprié ne s'est pas produit dans les ‹seconds›. à 0, attend indéfiniment.
‹event›, --event ‹event› Écoute des événements spécifiques uniquement.
-a ‹event›, --ascending ‹event› Trie ascendant de la sortie par compteur de l'événement spécifié
-d ‹event›, --descending ‹event› Trie descendant de la sortie par compteur de l'événement spécifié

Code de sortie

0 succès
1 Erreur d'exécution du programme

Événements

access accès au fichier
attrib Modification des métadonnées, ex les permissions, horodatages, attributs étendus, compteur de liens, UID ou GID.
close_write Fichier ouvert en écriture fermé
close_nowrite Fichier non ouvert en écriture fermé
create Fichier ou répertoire créé dans le répertoire surveillé
delete Fichier ou répertoire supprimé dans le répertoire surveillé
delete_self Fichier ou répertoire surveillé supprimé ( ou déplacé dans un autre système de fichier)
modify Fichier modifié
move_self Fichier ou répertoire surveillé déplacé
moved_from Généré pour le répertoire contenant l'ancien nom quand un fichier est renommé
moved_to Généré pour le répertoire contenant le nouveau nom quand un fichier est renommé
open Fichier ouvert
move Équivalent à moved_from | moved_to
close Équivalent à close_write | close_nowrite
unmount Le système de fichiers contenant l'objet surveillé a été démonté

Exemples

Surveiller ~/.beagle pendant 60 secondes:
inotifywatch -v -e access -e modify -t 60 -r ~/.beagle
^
31 mars 2016

htmlpdflatexmanmd




inotifywait

inotifywait

Attend les changements de fichiers en utilisant inotify

   Il peut soit quitter une fois l'événement produit, ou s'exécuter en continue et afficher les événements qui se produisent. inotifywait affiche des diagnostiques sur l'erreur standard et les informations d'événement sur la sortie standard. La sortie de l'événement peut être configuré, mais par défaut, il consiste de lignes sous la forme suivante:

watched_filename EVENT_NAMES event_filename
watched_filename est le nom du fichier dans lequel l'événement se produit, si le fichier est un répertoire, un '/' final est affiché
EVENT_NAMES sont les noms des événements inotify qui se produisent
event_filename est affiché seulement quand l'événement se produit sur un répertoire, et dans ce cas le nom du fichier dans le répertoire qui à causé l'événement est affiché

OPTIONS

@‹file› Exclus le fichier spécifié dans le répertoire surveillé
--fromfile ‹file› Lit les noms de fichier à surveiller ou exclure depuis un fichier, un fichier par ligne. '@' comme préfixe exclus de fichier, si le fichier spécifié est '-', les fichiers sont lus depuis l'entrée standard
-m, --monitor Au lieu de quitter une fois un événement reçu, s'exécute indéfiniment
-d, --deamon Idem à -m, est s'exécute en tâche de fond en loggant dans un fichier spécifié avec --outfile. Implique --syslog
-o, --outfile ‹file› Sort les événements dans le fichier au lieu de stdout
-s, --syslog Affiche les erreurs dans syslog au lieu de stderr
-r, --recursive Surveille tous les sous-répertoires dans tous les répertoires passés en argument
-q, --quiet Si spécifié une seule fois, le programme sera moins verbeu. 2 fois, le programme n'affiche rien, exepté en cas d'erreur fatal.
--exclude ‹pattern› Ne traite pas les événements des fichiers dont le nom matche le regex spécifié, sensible à la casse
--excludei ‹pattern› idem, insensible à la casse
-t ‹seconds›, --timeout ‹seconds› Quitte si un événement approprié ne s'est pas produit dans les ‹seconds›. à 0, attend indéfiniment.
‹event›, --event ‹event› Écoute des événements spécifiques uniquement.
-c, --csv Sort au format CSV
--timefmt ‹fmt› Défini un format de date accepté par strftime(3) à utiliser avec %T de l'option --format
--format ‹fmt› Format personnalisé, les caractères de conversions suivants sont supportés:

        %w Nom du fichier surveillé
        %f Dans un répertoire, le nom du fichier ayant causé l'événement
        %e Événements qui se sont produits, séparés pas des ','
        %Xe Idem, séparé par le caractère ‹X›
        %T Date courante

Code de sortie

0 succès
1 Erreur d'exécution du programme
2 Option -t utilisé et aucun événement ne s'est produit

Événements

access accès au fichier
attrib Modification des métadonnées, ex les permissions, horodatages, attributs étendus, compteur de liens, UID ou GID.
close_write Fichier ouvert en écriture fermé
close_nowrite Fichier non ouvert en écriture fermé
create Fichier ou répertoire créé dans le répertoire surveillé
delete Fichier ou répertoire supprimé dans le répertoire surveillé
delete_self Fichier ou répertoire surveillé supprimé ( ou déplacé dans un autre système de fichier)
modify Fichier modifié
move_self Fichier ou répertoire surveillé déplacé
moved_from Généré pour le répertoire contenant l'ancien nom quand un fichier est renommé
moved_to Généré pour le répertoire contenant le nouveau nom quand un fichier est renommé
open Fichier ouvert
move Équivalent à moved_from | moved_to
close Équivalent à close_write | close_nowrite
unmount Le système de fichiers contenant l'objet surveillé a été démonté

Exemples

Attend un accès à un fichier dans le répertoire test:
inotifywait test
Script shell pour attendre efficacement pour des log https et agir en consequence:
#!/bin/sh
while inotifywait -e modify /var/log/messages; do
if tail -n1 /var/log/messages | grep httpd; then
kdialog --msgbox "Apache needs love!"
fi
done
Personnaliser le format de sortie:
inotifywait -m -r --format '%:e %f' ~/test
^
31 mars 2016

htmlpdflatexmanmd




inoticoming

inoticoming

Déclencher des actions quand des fichiers entrent dans un répertoire

   inoticoming est un service qui recherche un répertoire avec le framework inotify de linux et déclenche des actions une fois que les fichiers avec des noms spécifiques y sont placés.

OPTIONS

--foreground Ne pas forker
--logfile filename Log dans le fichier spécifié au lieu de syslog
--pid-file filename Écris le pid de l'instance dans le fichier spécifié
--initialsearch Effectue une recherche initiale dans le répertoire

ACTIONS

--prefix string Déclenche l'action si le nom de fichier commence avec la chaîne spécifiée
--suffix string Déclenche l'action si le nom de fichier se termine avec la chaîne spécifiée
--chdir directory Change de répertoire avant d'exécuter la commande spécifiée
--stdout-to-log Redirige la sortie de la commande dans le fichier de log
--stderr-to-log Redirige l'erreur standard dans le fichier de log

Exemples

Appeler reprepro pour chaque fichier .changes. {} sera remplacé avec le nom de fichier.
inoticoming --logfile logs/ilog --pid-file pid $INCOMINGDIR --suffix .changes --stderr-to-log reprepro -s -b $REPREPROBASEDIR --waitforlock 1000 processincoming rulename {} \;
^
31 mars 2016

htmlpdflatexmanmd




inosync

inosync

Service de synchronisation de répertoire basé sur les notifications

   script python s'appuyant sur rsync pour synchroniser automatiquement des répertoires

OPTIONS

-c FILE Fichier de configuration
-d lance en tâche de fond
-p N'appel pas rsync
-v mode verbeux

Configuration


# Répertoire à surveiller:
wpath = "/var/www/"
    
# liste d'exclusion pour rsync
rexcludes = [
    "/localhost",
]
    
# Chemin distant:
rpath = "/var/www/"
    
# Emplacements distants au format rsync
rnodes = [
    "a.mirror.com:" + rpath,
    "b.mirror.com:" + rpath,
    "c.mirror.com:" + rpath,
]
    
# Limite de vitesse rsync en Ko/s, 0 = pas de limite
#rspeed = 0
    
# Masque d'événements:
#emask = [
#\t"IN_CLOSE_WRITE",
#\t"IN_CREATE",
#\t"IN_DELETE",
#\t"IN_MOVED_FROM",
#\t"IN_MOVED_TO",
#]
    
# Délai d'événement, réduit de traffic
#edelay = 10
    
# Ficher de log rsync
#logfile = /var/log/inosync.log
    
# Chemin du binaire rsync
#rsync = "/usr/bin/rsync"

^
31 mars 2016

htmlpdflatexmanmd




entr

entr

Lancer des commandes arbitraires quand des fichiers changent

   Une liste de fichiers fournis sur l'entrée standard et un programe est exécuté quand ils changent

OPTIONS

-c Exécute /usr/bin/clear avant d'invoquer le programme spécifié
-d Suit les répertoires des fichiers réguliers fournis en entrée et qui si un nouveau fichier est ajouté.
-p Retarde la première exécution du programme jusqu'à ce qu'un fichier soit modifié
-l Recharge un process enfant persistant.

   La première occurrence de /_ sur la ligne de commande sera remplacée avec le chemin absolu du premier fichier créé qui a été modifié. Si l'option restart est utilisée le premier fichier qui match est traité

Exemples

Reconstruire un projet si le fichier source change, limitant la sortie aux 20 premières lignes
find src/ | entr sh -c 'make | head -n 20'
Lancer et recharger automatiquement un serveur node.js
ls *.js | entr -r node app.js
Effacer l'écran et lancer une requête après que le script SQL soit mis à jours:
echo my.sql | entr -p psql -f /_
Reconstruire le projet si un fichier sources est modifié ou ajouté dans le répertoire src/
while sleep 1; do ls src/*.rb | entr -d rake; done
^
31 mars 2016

htmlpdflatexmanmd




inotify

inotify

Surveillance des événements des systèmes de fichier

   inotify est contrôlé par un jeu de 3 appels système et d’un fichier I/O normal retourné sur un descripteur de fichier.

inotify_init(2) Créé une instance inotify et renvoie un descripteur de fichier se référant à cette instance inotify. inotify_init1(2) est similaire mais offre un argument flags qui fournis des fonctionnalités supplémentaires.
inotify_add_watch(2) Manipule la liste de surveillance associée à une instance inotify. Chaque élément indique le chemin d'un fichier ou d'un répertoire avec un ensemble d'événements à surveiller.
inotify_rm_watch(2) Retire un élément d'une liste de surveillance inotify

Pour déterminer quels événements ont lieu, une application lit le descripteur de fichier inotify avec read(2). Chaque lecture réussie renvoie un tampon contenant une ou plusieurs structures suivantes:
struct inotify_event {
    int wd; /*Descripteur de surveillance*/
    uint32_t mask; /*Masque d'événements*/
    uint32_t cookie; /*Cookie unique d'association des événements (pour rename(2))*/
    uint32_t len; /*Taille du champ name*/
    char name[]; /*Nom optionnel terminé par un nul*/
};

wd identifie l'élément de surveillance
mask contient des bits décrivant l'événement
cookie entier unique qui relie les événements. Utilisé uniquement pour les événements de renommage
len Compte tous les octets de name, incluant les caractères nuls.

Événements inotify

IN_ACCESS accès au fichier
IN_ATTRIB Modification des métadonnées, ex les permissions, horodatages, attributs étendus, compteur de liens, UID ou GID.
IN_CLOSE_WRITE Fichier ouvert en écriture fermé
IN_CLOSE_NOWRITE Fichier non ouvert en écriture fermé
IN_CREATE Fichier ou répertoire créé dans le répertoire surveillé
IN_DELETE Fichier ou répertoire supprimé dans le répertoire surveillé
IN_DELETE_SELF Fichier ou répertoire surveillé supprimé ( ou déplacé dans un autre système de fichier)
IN_MODIFY Fichier modifié
IN_MOVE_SELF Fichier ou répertoire surveillé déplacé
IN_MOVED_FROM Généré pour le répertoire contenant l'ancien nom quand un fichier est renommé
IN_MOVED_TO Généré pour le répertoire contenant le nouveau nom quand un fichier est renommé
IN_OPEN Fichier ouvert
IN_MOVE Équivalent à IN_MOVED_FROM | IN_MOVED_TO
IN_CLOSE Équivalent à IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_DONT_FOLLOW e pas déréférencer pathname s'il s'agit d'un lien symbolique
IN_EXCL_UNLINK Ne génère pas d'événements pour certaines entrées après leur suppression du répertoire surveillé
IN_MASK_ADD Ajouter des événements au masque de surveillance de ce fichier s'il existe déjà (au lieu de remplacer le masque)
IN_ONESHOT Surveiller pathname jusqu'au premier événement, puis le supprimer de la liste de surveillance
IN_ONLYDIR Ne surveiller pathname que si c'est un répertoire
IN_IGNORED Le surveillant a été retiré explicitement au automatiquement
IN_ISDIR Le sujet de cet événement est un répertoire
IN_Q_OVERFLOW File des événements surchargé
IN_UNMOUNT Le système de fichiers contenant l'objet surveillé a été démonté
^
28 mars 2016

htmlpdflatexmanmd




kxc-cryptsetup

kxc-cryptsetup

wrapper cryptsetup pour kxc

   kxc-cryptsetup est un wrapper pour invoquer kxc tout en prenant les options des fichiers dans /etc/kxc/. Il peut être utilisé comme script de clé cryptsetup, pour automatiquement obtenir les clé pour ouvrir des périphériques kxc.

^
28 mars 2016

htmlpdflatexmanmd




kxc

kxc

Client d'échange de clé

   kxc est le client pour kxd. Il prend une clé et un certificat client, le certificat du serveur et une URL (ex: kxd://server/host1/key1), et affiche sur stdout la clé retournée. Il y a un script pour ouvrir des périphérique cryptsetup automatiquement: kxc-cryptsetup.

OPTIONS

--client_key=‹file› Fichier contenant la clé privée du client
--client_cert=‹file› Certificat du client
--server_cert=‹file› Certificats du serveur
^
28 mars 2016

htmlpdflatexmanmd




kxd

kxd

Service d'échange de clé

   kxd est un service d'échange de clé, qui dessert des clé sur https. Il peut être utilisé pour obtenir des clé à distance au lieu d'utiliser un stockage local. Son utilisation principale est d'obtenir des clé pour ouvrir des périphériques dm-crypt automatiquement, sans avoir à stocker les clé sur la machine locale. Sa configuration est stockée dans /etc/kxd/data, dans lequel il y a un répertoire pas clé (ex: /etc/kxd, data, host1/key1/), chacun contenant les fichiers suivants:

key Contient la clé à donner au client
allowed_clients Contient un ou plusieurs certificats PEM clients autorisés à demander la clé
allowed_hosts Contient un ou plusieurs noms d'hôte (un par ligne)
email_to Un ou plusieurs email de destination pour les notifications (un par ligne)

OPTIONS

--key=‹file› clé privée à utiliser. Défaut: /etc/kxd/key.pem
--cert=‹file› Certificat à utiliser. Défaut: /etc/kxd/cert.pem
--data_dir=‹directory› Répertoire des données. Défaut: /etc/kxd/data
email_from=‹email-address› Adresse email de l'émetteur pour l'envoie des emails
--ip_addr=‹ip-address› Adresse IP d'écoute. Défaut: 0.0.0.0
--logfile=‹file› Fichier de log. '-' pour stdout. Défaut: utilise syslog
--port=‹port› Port d'écoute. Défaut: 19840
--smtp_addr=‹host:port› Addresse du serveur smtp
^
25 mars 2016

htmlpdflatexmanmd




cmtab

cmtab

Informations sur les systèmes de fichier gérés par cryptmount

   /etc/cryptmount/cmtab contient les informations sur les systèmes gérés par cryptmount. Le format est flexible:


TARGET_NAME {
    dev=DEVICE # REQUIRED
    flags=FLAG,FLAG,...
    startsector=STARTSECTOR
    numsectors=NUMSECTORS
    loop=LOOPDEV
    dir=MOUNT_POINT
    fstype=TYPE # REQUIRED
    mountoptions=MOPT,MOPT,...
    fsckoptions=FOPT;FOPT;...
    supath=SUPATH
    bootaction=BOOTACTION
    cipher=CIPHER
    ivoffset=IVOFFSET
    keyformat=KEYMANAGER
    keyfile=KEYFILE # REQUIRED
    keyhash=KEYHASH
    keycipher=KEYCIPHER
    keymaxlen=KEYMAXLEN
    passwdretries=NUMATTEMPTS
}

   Certains champs, tels que dev et fstype sont obligatoires. De nombreux champs ont des valeurs par défaut. Un champ contenant une valeur non-numérique peut contenir une référence à une variable d'environnement:

$(HOME) Répertoire personnel de l'utilisateur
$(UID) UID de l'utilisateur
$(USERNAME) Nom de l'utilisateur
$(GID) GID du groupe primaire de l'utilisateur
$(GROUPNAME) Groupe primaire de l'utilisateur

Définitions de cibles

dev Dpfinis le nom du périphérique ou du fichier.
flags "user", "nouser", "fsck", "nofsck", "mkswap", "nomkswap", "trim", "notrim". Défaut: user,fsck,nomkswap,notrim
startsector Secteur de début du système de fichier dans le périphérique. défaut: 0
numsectors Donne la longueur totale du système de fichier en secteur. Défaut: -1
loop Permet de spécifier un périphérique loopback. Défaut: auto
dir Point de montage
fstype Type de système de fichier
mountoptions Options de montage utilisées par mount
fsckoptions options utilisées par fsck
supath Définis la variable d'environnement PATH en lançant des sous-processus en tant que root. Peut être nécessaire pour fsck et mount. Défaut: /sbin:/bin:/usr/sbin:/usr/bin
bootaction Action lors du démarrage du système (none, mount, swap ou prepare)
cipher Algorithme de chiffrement à utiliser. Défaut: aes-cbc-plain
keyformat schéma de gestion de clé utilisé pour interagir avec le keyfile. (libgcrypt, luks, openssl-compact, builtin, raw). Défaut: builtin
keyfile Nom du fichier contenant la clé à utiliser
ivoffset Offset ajouté au numéro de secteur utilisé pour construire le vecteur d'initialisation de l'algorithme de chiffrement. Défaut: 0
keyhash Algorithme de hashage à utiliser
keycipher Algorithme de chiffrement à utiliser pour sécuriser la clé de déchiffrement
keymaxlen Longueur en octet de la clé de déchiffrement
passwdretries Nombre de tentative du mot de passe

Choix du keymanager

   cryptmount supporte différentes manières de protéger l'accès à la clé associée avec chaque système de fichier chiffré. Pour la plupart des utilisateurs, le keymanager builtin fournis a bon niveau de sécurité et une bonne flexibilité. Les keymanager alternatifs offre un grand choix de schéma de hashage de mot de pass et de compatibilité avec d'autres outils de chiffrement.

builtin Ce keymanager utilise un keyfile séparé. Une fonction de dérivation de clé (PBKPF2) utilisant l'algorithme de hashage SHA1, avec chiffrement blowfish-cbc est utilisé pour protéger la clé.
libgcrypt Ce keymanager utilise un keyfile séparé. Une fonction de dérivation de clé (PBKPF2) est utilisé pour protéger la clé, avec un algorithme de hashage et de chiffrement supporté par la version installé de la librairie libgcrypt.
luks Ce keymanager fournis une compatibilité avec le format LUKS. Au lieu d'un fichier séparé, LUKS utilise un en-tête dans le système de fichier lui-même.
openssl/openssl-compat Ce keymanager utiliser un keymanager séparé qui est compatible avec le format utilisé par l'outil de chiffrement opennssl. Une fonction de dérivation de clé (PBKPF2) est utilisé pour protéger la clé, avec un algorithme de hashage et de chiffrement disponible.
password Ce keymanager dérive la clé directement depuis le mot de passe de l'utilisateur
raw Ce keymanager utilise un keyfile séparé où la clé accès est stocké directement et sans chiffrement. Ce keymanager est utile pour gérer les partitions swap chiffrés, où le keyfile peut être choisis avec /dev/random et la clé sera différente à chaque fois quelle est lue.

Sécurité

   Parce que cryptmount nécessite d'opérer avec des privilèges setuid, il est très important que son fichier de configuration soit sécurisé. Idéalement, /etc/cryptmount/cmtab devrait être géré seulement par l'administrateur système, et tous les keyfiles devraient lisibles par leur propriétaire. cryptmount effectue des vérifications de sécurité sur /etc/cryptmount/cmtab chaque fois qui est lancé, et va refuser d'opérer sauf si les conditions suivant sont rencontrées:

- cmtab doit être possédé par root
- cmtab doit être un fichier régulier
- cmtab ne doit pas être en écriture globalement
- Le répertoire contenant cmtab doit être possédé par root
- Le répertoire contenant cmtab ne doit pas être en écriture globalement
- Pour chaque cible dans @CM_SYSCONFDIR@/cmtab, tous les chemins doivent être absolus

Exemples

L'exemple suivant de @CM_SYSCONFDIR@/cmtab consiste de 5 cibles, utilisant divers algorithmes de chiffrement et stockent leur système de fichier de différentes manières, incluant une cible représentant une partition swap chiffrée:
_DEFAULTS_ {
    passwdretries=3 # allow 3 password attempts by default
}
    
basic {
    dev=/home/secretiveuser/crypt.fs
    dir=/home/secretiveuser/crypt # where to mount
    loop=auto # find free loop-device
    fstype=ext3 mountoptions=default
    cipher=aes-cbc-plain # filesystem encryption
    keyfile=/home/secretiveuser/crypt.key
    keyformat=builtin
}
    
partition {
    dev=/dev/hdb62 # use whole disk partition
    dir=/mnt/crypt62
    fstype=ext3 mountoptions=nosuid,noexec
    cipher=serpent-cbc-plain
    keyfile=@CM_SYSCONFDIR@/crypt_hdb62.key
    keyformat=openssl # use OpenSSL key-encryption
    keyhash=md5 keycipher=bf-cbc # encryption of key file
}
    
subset {
    dev=/dev/hdb63
    startsector=512 numsectors=16384 # use subset of partition
    dir=/mnt/encrypted\ subset\ of\ hdb
    fstype=reiserfs mountoptions=defaults
    cipher=twofish-cbc-plain # filesystem encryption
    keyfile=@CM_SYSCONFDIR@/crypt_hdb63.key
    keyformat=libgcrypt
    keyhash=md5 keycipher=blowfish-cbc # encryption of key file
}
    
encswap { # encrypted swap partition
    bootaction=swap
    dev=/dev/disk/by-id/scsi-SATA_ST500_ABCDEFG-part37
    startsector=16896 numsectors=1024 # use subset of partition
    fstype=swap flags=mkswap cipher=twofish-cbc-plain
    keyfile=/dev/random keymaxlen=16 keyformat=raw
}
    
luks { # partition created by cryptsetup-luks
    dev=/dev/hdb63
    dir=/mnt/luks-partition-$(USERNAME)
    keyformat=luks
    keyfile=/dev/hdb63
    fstype=ext3
}

^
25 mars 2016

htmlpdflatexmanmd




cryptsetup

cryptsetup

Gérer les volumes chiffré dm-crypt et LUKS

   cryptsetup est utilisé pour définir les mappages device-mapper gérés par dm-crypt. Cela inclus les volume dm-crypt et LUKS. La différence est que LUKS utilise en en-tête de méta-données et peut ainsi offrir plus de fonctionnalités que dm-crypt. D'un autre côté, l'en-tête est visible et vulnérable.

   De plus, cryptsetup fournis un support limité des volumes historiques loopaes et pour les volumes compatibles TrueCrypt.

   Beaucoup d'informations sur les riques de l'utilisation de stockage chiffré, la gestion des problèmes et sur les aspects de sécurité peuvent être trouvés dans la FAQ Cryptsetup.

Commandes de base

open ‹device› ‹name› --type ‹device_type› Ouvre (créé un mappage avec) le nom. device_type peut être plain, luks, loopaes ou tcrypt.
close ‹name› Supprime la mappage existant et détruit la clé de la mémoire kernel
status ‹name› Reporte le status pour la mappage donné
resize ‹name› Redimentionne un mappage active

Mode Plain

   plain dm-crypt chiffre le périphérique secteur par secteur avec un simple, non-salted hash de la passphrase. aucune vérification n'est effectuée, aucune métadonnée n'est utilisée. Il n'y a pas d'opération de formattage. Quand le périphérique brut est mappé, les opérations de périphériques peuvent être utilisée sur le périphérique mappé, incluant la création du système de fichier. Les périphériques de mappage peuvent être créés dans /dev/mapper/‹name›.

Extensions LUKS

   LUKS est un standard pour le chiffrement de disque. Il ajoute une en-tête standardisé au début du périphérique, une zone de slot directement derrière l'en-tête et les données bulk ensuite. Toute ce jeu est appelé un conteneur LUKS. Le périphérique où un conteneur LUKS réside est appelé un périphérique LUKS.

   LUKS peut gérér plusieurs passphrases qui peuvent être révoqués individuellement ou changés et peuvent être néttoyés du média persistant de manière sécurisée. Les passphases sont protégées contre le brute-force et les attaques par dictionnaire par PBKDF2, qui implémente une itération de hash et un salt dans une fonction.

   Chaque passphrase, également appelée une clé, est associée avec un des 8 slots. Les opérations de clé qui ne spécifient pas un slot affectent le premier slot qui matche la passphrase fournie ou le premier slot vide si une nouvelle passphrase est ajoutée.

   Le paramètre device peut également être spécifié par un UUID LUKS au format UUID=‹uuid›. Pour spécifier un en-tête détaché, le paramètre --header peut être utilisé dans toutes les commandes LUKS et prend toujours précédence sur le paramètre positionnel device.

  Les options LUKS valides sont les suivantes:

luksFormat ‹device› [‹key file›] Initialise une partition LUKS et définis la passphrase initiale (slot 0), soit en demandant, soit via le fichier spécifié. Noter que si le 2ème argument est présent, la passphrase est prise du fichier donné, sans avoir besoin de l'option --key-file. Noter également que '-' comme nom de fichier lit la passphrase depuis l'entrée standard. cette action ne peut être utilisé que sur des périphériques LUKS qui ne sont pas mappé.
open --type luks ‹device› ‹name› Ouvre le périphérique LUKS et définis un mappage une fois la vérification de la passphrase effectuée.
luksSuspend ‹name› Suspend un périphérique actif (toutes les opérations IO seront blockés et les accès au périphérique attendent indéfiniment.
luksResume ‹name› Résume un périphérique suspendu et redemande une passphrase, si --key-file n'est pas donné
luksAddKey ‹device› [‹key file with new key›] Ajoute une nouvelle passphrase. Une passphrase doit être fournie interactivemenet ou via --key-file.
luksRemoveKey ‹device› [‹key file with passphrase to be removed›] Supprime la passphrase fournie du périphérique LUKS. La passphrase à supprimer peut être spécifiée interactivement ou via --key-file
luksChangeKey ‹device› [‹new key file›] Change une passphrase existante.
luksKillSlot ‹device› ‹key slot number› Détruit la clé du périphérique LUKS.
luksErase ‹device› Supprime tous les keyslots et rend le conteneur inaccessible. Cette opération est irréversible
luksUUID ‹device› Affiche le UUID du périphérique LUKS. Définis un nouvel UUID is --uuid est spécifié
isLuks ‹device› Retourne true, si le périphérique est un périphérique LUKS.
luksDump ‹device› Dump les informations d'en-tête d'une périphériques LUKS. Si l'options --dump-master-key est utilisé, la clé maître est dumpé au lieu du keyslot.
luksHeaderBackup ‹device› --header-backup-file ‹file› Stocke un backup binaire de l'en-tête LUKS et la zone keyslslot.
luksHeaderRestore ‹device› --header-backup-file ‹file› Restaure un backup binaire d'un en-tête LUKS.

Extensions TCRYPT

   cryptsetup supporte le mappage de TrueCrypt, tcplay ou VeraCrypt en utilisant l'API kernel Linux. Le changement de formattage d'en-tête et l'en-tête TCRYPT n'est pas supporté.

   L'extension TCRYPT nécessite l'API crypto disponible dans l'espace utilisateur. (CRYPTO_USER_API_SKCIPHER) Parce que l'en-tête TCRYPT est chiffré, il faut toujours fournir une passphrase valide.

   cryptsetup devrait reconnaître toutes les variantes d'en-tête, excepté les chaînes de chiffrement utilisant le mode de chiffrement LRW avec block de chiffrement 64-bits (blowfish en mode LRW n'est pas reconnu, c'est une limitation de l'API crypto du kernel)

   Parce que l'en-tête TCRYPT est chiffré, il faut toujours fournir une passphrase valide et un keyfile

   Pour reconnaître un périphérique VeraCrypt, utiliser l'option --veracrypt. VeraCrypt est une extension de l'en-tête TrueCrypt avec un compteur d'itération amélioré, donc le déblocage peut prendre plus de temps.

   Note: L'activation avec tcryptOpen est supporté uniquement pour les chaînes de chiffrement utilisant les modes LRW ou XTS.

   tcryptDump devrait fonctionner pour tous les périphériques TCRYPT reconnus et ne nécessite pas de privilège root.

   Pour mapper les périphériques système (avec un boot loader) utiliser l'option --tcrypt-system.

   Si vous avez un périphérique TCRYPT comme fichier image et souhaitez mapper plusieurs partitions chiffrées avec le chiffrement système, créer un mappage loopback avec les partitions en premier (losetup -P), et utiliser la partition loop comme paramètre de périphérique.

   Pour utiliser un en-tête caché, utiliser --tcrypt-hidden. Pour utiliser en-tête backup, utiliser l'option --tcypt-hidden.

open --type tcrypt ‹device› ‹name› Ouvre un périphérique TCRYPT et définis le mappage. keyfile permet de combiner le contenu du fichier avec la passphrase et peut être répétée. Noter qu'utiliser des keyfiles est compatible avec TCRYPT et est différent de la logique keyfile LUKS.
tcryptDump ‹device› Dump les informations d'en-tête. Si --dump-master-key est utilisé, la clé maître est dumpé au lieu de l'en-tête.

Divers

repair ‹device› Tente de réparer les méta-données du périphérique. Uniquement pour les périphériques LUKS
benchmark ‹options› benchmark les chiffrements et les fonction de dérivations de clé (KDF). Sans paramètres, tente de mesurer les configuration communes. Les paramètre --cipher, --key-size ou --hash doivent être spécifiés.

OPTIONS

-v, --verbose mode verbeux
--debug Mode debug
-h, --hash Spécifie le hash de la passphrase à ouvir
-c, --cipher définis le chiffrement
-y, --verify-passphrase Demande 2 fois la passphrase
-d, --keyfile lit la passphrase depuis le fichier
--keyfile-offset Saut n octets au début du fichier de clé
-l, --keyfile-size Taille de la clé en octets dans le fichier de clé
--new-keyfile-offset Saute n octets en ajoutant une nouvelle passphrase dans le fichier de clé avec luksAddKey.
--new-keyfile-size Taille de la clé en octet en ajoutant une nouvelle passphrase dans le fichier de clé avec luksAddKey.
--master-key-file Utilise la clé maître stockée dans un fichier. Pour luksFormat, cela permet de créer un en-tête LUKS avec cette clé maître.
--dump-master-key Pour luksDump, inclus la clé maître dans les informations affichées.
--use-random, --use-urandom Spécifie le générateur de nombre pseudo-aléatoire utilisé pour clé la clé de volume
-S, --key-slot Spécifie le slot de clé à utiliser. Tous les autres slots seront désactivé.
-b, --size Force la taile du périphérique en secteurs de 512 octets.
-o, --offset Décalage du début dans le périphérique en secteurs de 512 octets
-p, --skip Saut n secteurs de 512 octets dans le périphérique.
-r, --readonly Définis un mappage lecture seule
--shared Créé un mappage additionnel pour un périphérique ciphertext commun.
--i, --iter-time Nombre de temps en ms pour le traitement PBKDF2.
-q, --batch-mode mode silencieux
-t, --timeout Temps d'attente de la passphrase
-T, --tries Nombre de tentative pour l'entrée de passphrase invalide
--align-payload Aligne le payload au limites de n secteurs de 512 octets.
--uuid Utilise l'UUID fournis au lieu d'en générer un nouveau
--allow-discards Autorise l'utilisation des requêtes discards (TRIM) déconseillé pour des raisons de sécurité
--perf-same_cpu_crypt Effectue un chiffrement avec le même CPU qui gère les E/S.
--perf-submit_from_crypt_cpus Désactive les écriture offload dans un thread séparé après le chiffrement.
--test-passphrase N'active pas le périphériques, vérifie simplement la passphrase
--header Utilise un périphérique de méta-donnée séparé ou un fichier où se trouve l'en-tête LUKS
--force-password N'utilise pas la vérification du mot de passe LUKS

Codes de retour

0 L'opération s'est déroulé avec succès
1 Mauvais paramètres
2 N'a pas les permissions
3 Out of memory
4 Mauvais périphérique spécifié
5 Le périphérique existe déjà
^
24 mars 2016

htmlpdflatexmanmd




cryptsetup-reencrypt

cryptsetup-reencrypt

Outil de re-chiffrement de périphérique LUKS offline

   cryptsetup-reencrypt re-chiffre les données dans un périphérique LUKS. Durant le processus le périphérique LUKS est marqué non-disponible. Attention, il n'est pas résistant aux erreurs kernel et matériel.

OPTIONS

-v, --verbose mode verbeux
--debug Mode debug
-c, --cipher définis le chiffrement
-s, --key-size Taille de la clé en bits. Doit être un multiple de 8
-h, --hash Spécifie le hash utilisé dans le schéma de configuration de clé LUKS et de clé de volume
-i, --iter-time Nombre de ms de traitement PBKDF2 pour le nouvel en-tête LUKS
--use-random, --use-urandom Spécifie le générateur de nombre pseudo-aléatoire utilisé pour clé la clé de volume
-d, --keyfile lit la passphrase depuis le fichier
-S, --key-slot Spécifie le slot de clé à utiliser. Tous les autres slots seront désactivé.
--keyfile-offset Saut n octets au début du fichier de clé
-l, --keyfile-size Taille de la clé en octets dans le fichier de clé
--keep-key Ne change pas la clé de chiffrement, rechiffre simplement l'en-tête et les keyslots.
-T, --tries Nombre de tentative pour l'entrée de passphrase invalide
--device-size Spécifie la taille du périphérique, au lieu de la taille réelle
--reduce-device-size Agrandit les données d'offset en diminuant la taille du périphérique.
-N, --new Créé un nouvel en-tête
--decrypt Supprime le chiffrement
--use-directio Utilise direct-io pour les options d'E/S.
--use-fsync Utilise l'appel fsync après chaque block écris.
--write-log Met à jours le fichier de log après chaque block écris.
-q, --batch-mode mode silencieux

Codes de retour

0 L'opération s'est déroulé avec succès
1 Mauvais paramètres
2 N'a pas les permissions
3 Out of memory
4 Mauvais périphérique spécifié
5 Le périphérique existe déjà

Exemples

Rechiffrer /dev/sdb1 (change la clé de volume)
cryptsetup-reencrypt /dev/sdb1
Rechiffre et change le chiffrement de le mode de chiffrement
cryptsetup-reencrypt /dev/sdb1 -c aes-xts-plain64
Ajoute le chiffrement LUKS à un périphérique non-chiffré
fdisk -u /dev/sdb
cryptsetup-reencrypt /dev/sdb1 --new --reduce-device-size 4096S
Supprimer le chifffrement LUKS
cryptsetup-reencrypt /dev/sdb1 --decrypt
^
24 mars 2016

htmlpdflatexmanmd




veritysetup

veritysetup

Gère les volumes dm-verity

   veritysetup est utilisé pour configurer les mappages device-mapper dm-verity. Les cibles verity fournissent une vérification d'intégrité transparente des périphériques block utilisant l'API crypto kernel. Les périphériques dm-verity sont toujours lecture-seule.

Opérations

format ‹data_device› ‹hash_device› Calcule et stocke Les données de vérification de hash de manière permanente pour le périphérique. La zone de hash peut être localisée sur le même périphérique après que les données soient spécifiées par l'option --hash-offset. Il est nécessaire de fournir la chaîne de hash root pour la vérification du périphérique ou l'activation. Le hash root doit être trusté. Les argument hash et data peuvent être un périphérique block ou un fichier image. Si le périphérique de hash n'existe pas il sera créé
create ‹name› ‹data_device› ‹hash_device› ‹root_hash› Créé un mappage du nom sur le périphérique donné en utilisant le hash pour la vérification par le kernel. root_hash est une chaîne hexadécimale.
verify ‹data_device› ‹hash_device› ‹root_hash› Vérifie a donnée dans le périphérique en utilisant les blocks de hash stocké dans hash_device. Cette commande effectue une vérification dans l'espace utilisateur, aucun périphérique kernel n'est créé.
remove ‹name› Supprime le mappage existant spécifié
status ‹name Affiche le status pour la mappage verity actif spécifié
dump ‹hash_device› Repporte les paramètres du périphérique verity depuis le superblock stocké sur disque

OPTIONS

-v, --verbose mode verbeux
--debug Mode debug
--no-superblock Créé ou utilise dm-verify sans superblock sur disque permanent
--format=number Spécifie le type de hash (actuellement: 1)
--data-block-size=bytes Utilise la taille de block spécifiée pour le périphérique de donnée.
--hash-block-size=bytes Utilise la taille de block spécifiée pour le périphérique de hash
--data-blocks=blocks Taille du périphérique de donnée utilisée pour la vérification. Non spécifié, tout le périphérique est utilisé
--hash-offset=bytes Offset de la zone de hash dans le périphérique de hash. La valeur doit être alignée à l'offset du secteur disque
--salt=hex string Salt à utiliser pour le formattage ou la vérification. Format est une chaîne hexadécimale
--uuid=UUID Utilise l'UUID fournis pour la commande format au lieu d'en générer un nouveau

Codes de retour

0 L'opération s'est déroulé avec succès
1 Mauvais paramètres
2 N'a pas les permissions
3 Out of memory
4 Mauvais périphérique spécifié
5 Le périphérique existe déjà
^
22 mars 2016

htmlpdflatexmanmd




luksformat

luksformat

Créé et format un périphérique LUKS

   luksformat est un wrapper autour de cryptsetup et mkfs qui fournis une interface simple pour créer un périphérique chiffré qui suis le standard LUKS et pour placer un système de fichier dans le périphérique chiffré. Le système de fichier par défaut est vfat vu qu'il est plus commun sur les périphérique amovibles.

syntaxe:
luksformat [-t fstype] device [mkfs_options]

^
22 mars 2016

htmlpdflatexmanmd




cryptmount-setup

cryptmount-setup

Définir un nouveau système de fichier chiffré

   cryptmount-setup aide à la configuration initiale du chiffrement d'un système de fichier, pour être géré par cryptmount. Lancé en root, il permet de créer un système de fichier de bas dans un fichier ordinaire. La taille, l'emplacement, le point de montage et le propriétaire du système de fichier peuvent être sélectionnés interactivement.

^
22 mars 2016

htmlpdflatexmanmd




/etc/crypttab

/etc/crypttab

informations statiques sur les systèmes de fichier chiffrés

   Ce fichier contient des informations sur les systèmes de fichiers chiffrés. crypttab est seulement lu par les programmes (cryptdisks_start et cryptdisks_stop), et non en écriture. C'est à l'administrateur système de créer et maintenir ce fichier. Chaque système de fichier est décris sur un ligne sépartée; les champs sur chaque ligne sont séparés par des espaces. L'ordre des enregistrements dans crypttab est importante parce qu'il est lu séquentiellement.

   Le premier champ, target, décris le nom du périphérique mappé. Il doit être un nom de fichier dans composant répertoire. Un périphérique mappé sera créé sous /dev/mapper/target.

   Le second champ, source-device, décris soit le périphérique block spéciale, ou le fichier qui contient les données chiffrées. Au lieu de donner le périphérique explicitement, l'UUID est supporté également.

   Le troisième champ, Key-file, décris le fichier à utiliser comme clé pour déchiffrer les données. Noter que le fichier de clé sera utilisé comme passphrase; la passphrase ne doit pas être suivie par le caractèse newline. Peut églalement être un nom de périphérique.

   Si le fichier de clé est la chaîne "none", une passphrase sera lue interactivement depuis la console. Dans ce cas, les options precheck, check, checkargs et tries peuvent être utiles.

   Le quatrième champ, options, décris les options cryptsetup associées avec le processus de chiffrement. Au minimum, le champ devrait contenir soit la chaîne luks respectivement tcrypt ou les options cipher, hash, et size. Les options sont au format key=value. Noter que les 4 champs sont obligatoires.

OPTIONS

cipher=‹cipher› Algorithme de chiffrement (ignoré pour LUKS et TCRYPT).
size=‹size› Taille de la clé de chiffrement (ignoré pour LUKS et TCRYPT)
hash=‹hash› Algorithme de hashage (ignoré pour LUKS et TCRYPT)
offset=‹offset› Offset de début (ignoré pour LUKS et TCRYPT)
skip=‹skip› Secteur du début à sauter (ignoré pour LUKS et TCRYPT)
verify Vérifie le mot de passe
readonly Le périphérique est lecture seule
discard Permet l'utilisation des requêtes discards (TRIM) pour le périphérique. déconseillé pour des raisons de sécurité.
luks Utilise le périphérique avec les extensions LUKS
tcrypt Utilese le périphérique avec les extensions TCRYPT
veracrypt Utilise l'extension VeraCrypt de TCRYPT.
swap Lance mkswap sur le périphérique créé
tmp=‹tmpfs› Lance mkfs avec le type tmpfs spécifié dans le périphérique créé. Défaut: ext4
precheck=‹precheck› Vérifie le contenu du périphérique source par un programme. Si la vérification échoue, le périphérique n'est pas créé.. cryptdisks/cryptroot recherche un programme dans /lib/cryptsetup/checks par défaut. preckeck n'est pas invoqué par les périphériques LUKS
check=‹check› Vérifie le contenu du périphérique cible par un programme. Si la vérification échoue, le périphérique n'est pas créé.. cryptdisks/cryptroot recherche un programme dans /lib/cryptsetup/checks par défaut.
checkargs=‹arguments› Donne les arguments spécifiés au programme de vérification.
tries=‹num› L'entrée de la passphrase est tentée num fois en cas d'erreur. Défaut=3. 1 ne retente pas, et 0 demande la passphrase jusqu'à ce quelle soit correct.
initramfs Processus hook initramfs traitant le périphérique root, tout périphérique avec cette option sont traités dans initramfs.
noearly Les scripts init sont invoqués 2 fois durant le processus de boot. Une fois avant lvm et raid, et une fois après.
noauto Ignore entièremenet le périphérique au processus de boot.
loud mode verbeu. Affiche une alerte si un périphérique n'existe pas.
quiet mode silencieu.
keyscript=‹path› L'exécutable utilisé avec le fichier de clé et la sortie est utilisée comme clé.
keyslot=‹slot› Slot de la clé (LUKS uniquement)
header=‹path› fichier d'en-tête détaché (ignoré pour les périphériques dm-crypt plain)
tcrypthidden Utilise l'en-tête TCRYPT caché.

checkscripts

blkid Vérifie les systèmes de fichier inconnus. Supporte un type comme argument via checkargs: "" réussis si un fs valide est trouvé, "none" réussis si aucun fs valide n'est trouvé, "ext4" (xfs, swap, crypto_LUKS, etc) réussis si un fs ext4 est trouvé.
un_blkid Vérifie les système de fichier connus.

Exemples

Périphérique d'échange chiffré:
cswap /dev/sda6 /dev/urandom cipher=aes-xts-plain64,size=256,hash=sha1,swap
Disque LUKS chiffré avec mot de passe intéractif, identifié par son UUID:
cdisk0 UUID=12345678-9abc-def012345-6789abcdef01 none luks
disque TCRYPT chiffré avec mot de passe interactif:
tdisk0 /dev/sr0 none tcrypt
Disque ext4 chiffré avec mot de passe interactif, retente 5 fois:
cdisk1 /dev/sda2 none cipher=aes-xts-plain64,size=256,hash=sha1,checkargs=ext4,tries=5
Utiliser un script de vérification spécifié, sans retentative:
cdisk2 /dev/sdc1 none cipher=aes-xts-plain64,size=256,hash=sha1,check=customscript,tries=1
Utiliser Twofish et un hash RIPEMD-160:
cdisk3 /dev/sda3 none cipher=twofish,size=256,hash=ripemd160

Variables d'environnement

CRYPTDISKS_ENABLE à yes, lance les initscripts cryptdisks au démarrage.
CRYPTDISKS_MOUNT Spécifie les points de montage qui sont montés avant d'invoquer cryptdisks. Prend les points de montage configuré dans /etc/fstab comme arguments, séparés par un espace.
CRYPTDISKS_CHECK Spécifie le checkscript par défaut à lancer avec le périphérique cible après avoir invoqué cryptdisks
CRYPTDISKS_PRECHECK Spécifie le checkscript par défaut à lancer avec le périphérique dm-crypt, avant d'invoquer cryptdisks
^
22 mars 2016

htmlpdflatexmanmd




cryptdisks_start

cryptdisks_start, cryptdisks_stop

wrapper de cryptsetup qui parse /etc/crypttab

   cryptdisks_start est un wrapper de cryptsetup qui parse /etc/crypttab tout comme /etc/init.d/cryptdisks le fait et démarre le mappage dm-crypt qui correspond au nom spécifié.

   cryptdisks_stop est un wrapper de cryptsetup qui parse /etc/crypttab tout comme /etc/init.d/cryptdisks le fait et stop le mappage dm-crypt qui correspond au nom spécifié.

^
22 mars 2016

htmlpdflatexmanmd




cryptmount

cryptmount

Monter/démonter/configurer un système de fichier chiffré

   cryptmount permet de monter ou démonter un système de fichier chiffré dans nécessiter de privilèges root, et l'assister root dans la création de nouveau système de fichiers chiffrés. Une fois la configuration initiale du système de fichier par l'administrateur système, l'utilisateur doit seulement fournir le mot de passe de déchiffrement pour que cryptmount configure automatiquement device-mapper et les cibles loopback avant de monter le système

   cryptmount a été écris en réponse aux différences entre la nouvelle infrastructure device-mapper de linux 2.6 et l'ancien cryptoloop qui permettait aux utilisateurs standards d'accéder aux systèmes de fichiers directement via mount.

OPTIONS

-a, --all Agit sur toutes les cible disponible, ex: pour monter toutes les cibles
-m, --mount Monte la cible spécifiée. L'utilisateur devra fournir un mot de passe pour débloquer la clé de déchiffrement pour le système de fichier.
-S, --status Indique si la cible est montée ou non
-l, --list Liste toutes les cibles disponible, incluant des informations sur le système de fichier et le point de montage.
-c, --change-password Change le mot de passe qui protège la clé de déchiffrement pour un système de fichier donné.
-g, --generate-key size Génère une clé de déchiffrement opur un nouveau système de fichier, avec la taille spécifiée en octets
-e, --reuse-key existing-target Définis une clé de déchiffrement pour un nouveau système de fichier, en utilisant une clé existante pour un autre système de fichier. Uniquement disponible pour root
-f, --config-fd num Lit la configuration des cible depuis le descripteur de fichier spécifié au lieu du fichier de configuration par défaut. Uniquement disponible pour root
-m, --passwd-fd num Lit les mots de passe depuis le descripteur de fichier spécifié au lieu du terminal. Chaque mot de passe est lu une seule fois.
-p, --prepare Prépare les périphériques device-mapper et loopback nécessaire pour accéder à la cible, mais ne la monte pas. Utilisé par root pour installer un système de fichier sur un périphérique chiffré
-r, --release Relache tous les périphériques device-mapper et loopback associés avec un cible particulière. Uniquement disponible pour root.
-s, --swapon Active le paging et swaping pour la cible. Uniquement disponible pour root.
-x, --swapoff Désactive le paging et swaping pour la cible. Uniquement disponible pour root.
-k, --key-managers Liste tous les formats disponibles pour protéger les clés d'accès au système de fichier
-B, --system-boot Configure toutes les cibles marquées "bootaction". Généralement utilisé pour monter automatiquement les systèmes de fichiers chiffré. Uniquement disponible pour root.
-Q, --system-shutdown Stop toutes les cibles marquées bootaction. L'opposé de -B. Uniquement disponible pour root.
-n, --safetynet Tente de stopper toute cible mounté qui devrait normalement être arrêtée avec --unmount ou --swapoff. Uniquement disponible pour root, et prévu exclusivemeent durant l'extinction du système.

Codes de sortie

1 Option de ligne de commande non-reconnue
2 Nom de cible non-reconnue
3 Erreur en exécutant le programme helper
100 Privilèges insuffisants
101 Erreur de sécurité à l'installation

Exemple d'utilisation

   Pour pouvoir créer un nouveau système de fichier chiffré par cryptmount, utiliser le programme cryptmount-setup qui peut être utilisé par le superuser pour le configurer interactivement.

   Alternativement, une configuration manuelle permet un contrôle avancé. Avant de le faire, il faut s'assurer que le kernel supporte /dev/loop et /dev/mapper (modprobe -a loop dm-crypt).

Ensuite, supposons que l'on souhaite définir un nouveau système de fichier chiffré qui aura comme nom "opaque". Si on a une partition libre, disons /dev/hdb63, on peut donc l'utiliser directement pour stocker le système de fichier chiffré. Alternativement, si l'on souhaite stocker le système de fichier chiffré dans un fichier ordinaire, on doit créer un fichier avec par exemple:
dd if=/dev/zero of=/home/opaque.fs bs=1M count=512
Puis remplacer toutes les occurences de /dev/hdb63 avec /home/opaque.fs.

Premièrement, il faut ajouter une entrée dans /etc/cryptmount/cmtab, qui décris le chiffrement qui sera utilisé pour protéger le système de fichier lui-même et la clé d'accès, comme suit:
opaque {
dev=/dev/hdb63 dir=/home/crypt
fstype=ext2 mountoptions=defaults cipher=twofish
keyfile=/etc/cryptmount/opaque.key
keyformat=builtin
}

   Ici, on utilise l'algorithme twofish pour chiffrer le système de fichier lui-même, avec le gestionnaire de clé embarqué utilisé pour protéger la clé de déchiffrement (dans /etc/cryptmount/opaque.key) qui sera utilisé pour chiffrer le système de fichier lui-même, on peut exécuter, en root:

   Cela va générer une clé 32 octets (256bits), qui est connu pour être supportée par twofish, et la stocke dans une forme chiffrée après avoir demandé le mot de passe.

Si on exécute, en root:
cryptmount --prepare opaque
Le mot de passe sera demandé, qui va permettre à cryptmount de définir une cible device-mapper (/dev/mapper/opaque). On peut désormais utiliser les outils standard pour créer le système de fichier dans /dev/mapper/opaque:
mke2fs /dev/mapper/opaque
après avoir exécuté:
cryptmount --release opaque
mkdir /home/crypt
Le système de fichier chiffré est prêt. Généralement, les utilisateurs peuvent le monter avec:
cryptmount -m opaque
ou
cryptmount opaque
et le démontent avec
cryptmount -u opaque

   cryptmount conserve un enregistrement sur quel utilisateur a monté chaque système de fichier pour pouvoir fournir un mécanisme de blockage pour s'assurer que seul le même utilisateur (ou root) peut le démonter.

Changement de mot de passe

Une fois un système de fichier utilisé, on peut souhaiter changer le mot de passe d'accès, par exemple:
cryptmount --change-password opaque

Système de fichier chiffré avec LUKS

   cryptmount peut être utilisé pour fournir un accès simple à aux systèmes de fichier chiffrés compatibles avec LUKS.

Pour accéder à une partition LUKS existante, une entrée a besoin d'être créé dans /etc/cryptmount/cmtab. Par exemple, si la partition /dev/hdb62 est utilisé pour contenir un système de fichier ext3 LUKS, une entrée sous la forme:
LUKS {
keyformat=luks
dev=/dev/hdb62 keyfile=/dev/hdb62
dir=/home/luks-dir fstype=ext3
}

Que permet de monter via cryptmount sous /home/luks-dir en exécutant:
cryptmount LUKS
cryptmount va également permettre à un utilisateur qui connaît un des mots de passe d'accè de changer leur mot de passe via
cryptmount --change-password LUKS

   cryptmount fournis également un support basic pour créer un nouveau système de fichier chiffré LUKS, qui peut être placé dans des fichiers ordinaires aussi bien que des partitions disque, via --generate-key. Cependant, pour exploiter toutes les fonctionnalité de LUKS, tel qu'ajouter plusieurs mots de passes, il faut utiliser cryptsetup.

   Il est fortement recommandé de ne pas tenter d'utiliser le support LUKS en combinaison avec les fonctionnalités de cryptmount pour stocker plusieurs systèmes de fichiers chiffrés dans une simple partition disque ou un fichier ordinaire. Cela est dû à la supposition dans le design de cryptsetup-luks que la clé LUKS est toujours stockée au début de la partition.
^
22 mars 2016

htmlpdflatexmanmd




dm-crypt

dm-crypt

Chiffrement transparent des périphériques block

   la cible crypt de Device-Mapper fournis un chiffrement transparent des périphériques blocks utilisant l'API crypto du kernel

Paramètres

cipher Algorithme de chiffrement et un mode de génération IV optionel (ex: des, aes-cbc-essip:sha256, twofish-ecb). /proc/crypto contient les modes crypto supportés
key Clé utilisée pour le chiffrement. Encodé en hexadécimal.
keycount Mode compatibilité multi-clé. On peut définis keycount clé et les secteurs sont chiffrés en accord avec leur offset (le secteur 0 utilise key0, etc.)
iv_offset L'offset IV est un compteur de secteur qui sont ajoutés au numéro du secteur avant de créer l'IV
device_path Périphérique qui est utilisé comme backend et contient la donnée chiffrée.
offset Secteur de départ dans le périphérique où les données chiffrée commencent
#opt_params Nombre de paramètres optionnels.

Paramètres optionnels

allow_discards Block discard request passé au périphérique crypté. Défaut: ignore ces requêtes
same_cpu_crypt Effectue le chiffrement en utilisant le même cpu que l'IO qui l'a émis.
submit_from_crypt_cpus Désactive l'écriture offload dans un thread séparé après le chiffrement. L'écriture bénéficie à CFQ, mais peut dégrader les performances dans certains cas.

Scripts d'exemple

LUKS (Linux Unified Key Setup) est la manière préférée pour définir le chiffrement de disque avec dm-crypt en utilisant l'utilitaire cryptsetup
[[
#!/bin/sh
# Crée un périphérique crypto avec dmsetup
dmsetup create crypt1 --table "0 `blockdev --getsize $1` crypt aes-cbc-essiv:sha256 babebabebabebabebabebabebabebabe 0 $1 0"
]]
    
[[
#!/bin/sh
# Crée un périphérique en utilisant cryptsetup et LUKS avec le chiffrement par défaut:
cryptsetup luksFormat $1
cryptsetup luksOpen $1 crypt1
]]

^
12 février 2015

htmlpdflatexmanmd




gluster

gluster

Gestionnaire gluster

Commandes

volume info [all|‹VOLNAME›] Affiche des informations sur tous les volumes, ou le volume spécifié
volume create ‹NEW-VOLNAME› [stripe ‹COUNT›] [replica ‹COUNT›] [disperse [‹COUNT›]] [redundancy ‹COUNT›] [transport ‹tcp|rdma|tcp,rdma›] ‹NEW-BRICK› ... Crée un nouveau volume.
volume delete ‹VOLNAME› Supprime le volume spécifié
volume start ‹VOLNAME› Démarre le volume spécifié
volume stop ‹VOLNAME› [force] Arrête le volume spécifié
volume rename ‹VOLNAME› ‹NEW-VOLNAME› Renomme le volume spécifié
volume set ‹VOLNAME› ‹OPTION› ‹PARAMETER› [‹OPTION› ‹PARAMETER›] ... Définis les options du volume
volume get ‹VOLNAME› ‹OPTION/all› Afficher les options du volume

Commandes de briques

volume add-brick ‹VOLNAME› ‹NEW-BRICK› ... Ajoute le brick spécifié au volume spécifié
volume remove-brick ‹VOLNAME› ‹BRICK› ... Supprime le brick spécifié
volume replace-brick ‹VOLNAME› ‹SOURCE-BRICK› ‹NEW-BRICK› commit force Remplace le brick spécifié
volume rebalance ‹VOLNAME› start Démarre la re-balance du volume spécifié
volume rebalance ‹VOLNAME› stop Stope la re-balance du volume spécifié
volume rebalance ‹VOLNAME› status Affiche le status de re-balance du volume spécifié

Commandes des logs

volume log filename ‹VOLNAME› [BRICK] ‹DIRECTORY› Répertoire de log pour le volume/brick correspondant
volume log locate ‹VOLNAME› [BRICK] Localise le répertoire de logs
volume log rotate ‹VOLNAME› [BRICK] Effectue une rotation des fichier de logs

Commandes de paires

peer probe ‹HOSTNAME› Cherche et ajoute le pair spécifié.
peer detach ‹HOSTNAME› Détache le pair spécifié
peer status Affiche le status des pairs

Commandes tier

volume tier ‹VOLNAME› attach [‹replica COUNT›] ‹NEW-BRICK›... Attache à un volume existant un tier du type spécifié en utilisant les bricks spécifiés
volume tier ‹VOLNAME› status Affiche des statistiques sur la migration des données entre les tiers chaud et froid
volume tier ‹VOLNAME› detach start Détache le tier chaud du volume. Les données sont déplacées du tier chaud vers le tier froid
volume tier ‹VOLNAME› detach commit [force] Sousmet un détachement du tier chaud du volume. Le volume revient à son état d'origine avant que le tier chaud ne soit attaché
volume tier ‹VOLNAME› detach status Afficher le status du mouvement des données
volume tier ‹VOLNAME› detach stop Arrête de détacher le tier chaud du volume

Commandes Geo-replication

volume geo-replication ‹MASTER_VOL› ‹SLAVE_HOST›::‹SLAVE_VOL› create [push-pem] [force] Créer une nouvelle session de geo-réplication.
volume geo-replication ‹MASTER_VOL› ‹SLAVE_HOST›::‹SLAVE_VOL› {start|stop} [force] démarre/arrête la session de geo-replication.
volume geo-replication [‹MASTER_VOL› [‹SLAVE_HOST›::‹SLAVE_VOL›]] status [detail] Affiche le status de la session de geo-replication
volume geo-replication ‹MASTER_VOL› ‹SLAVE_HOST›::‹SLAVE_VOL› {pause|resume} [force] Pause/relance la session de geo-replication
volume geo-replication ‹MASTER_VOL› ‹SLAVE_HOST›::‹SLAVE_VOL› delete [reset-sync-time] Détruire une session de geo-replication. reset-sync-time réinitialise le délai de synchro.
volume geo-replication ‹MASTER_VOL› ‹SLAVE_HOST›::‹SLAVE_VOL› config [[!]‹options› [‹value›]] voir ou définis la configuration pour la session de geo-replication

Commandes bitrot

volume bitrot ‹VOLNAME› {enable|disable} active/désactive le bitrot pour le volume
volume bitrot ‹VOLNAME› scrub-throttle {lazy|normal|aggressive} la valeur scrub-throttle est une mesure sur la rapidité du scrubs de système de fichier
volume bitrot ‹VOLNAME› scrub-frequency {daily|weekly|biweekly|monthly} Fréquence du scrubing
volume bitrot ‹VOLNAME› scrub {pause|resume|status|ondemand} paume/relance le scrub

commandes de snapshots

snapshot create ‹snapname› ‹volname› [description ‹description›] [force] Créé un snapshot d'un volume glusterfs.
snapshot restore ‹snapname› Applique un snapshot à un volume glusterfs
snapshot delete ( all | ‹snapname› | volume ‹volname› ) Supprime un snapshot
snapshot clone ‹clonename› ‹snapname› Clone un volume snapshot
snapshot list [volname] Liste les snapshots d'un volume
snapshot info [snapname | (volume ‹volname›)] Affiche des informations sur un snapshot
snapshot status [snapname | (volume ‹volname›)] Donne le status d'un snapshot
snapshot config [volname] ([snap-max-hard-limit ‹count›] [snap-max-soft-limit ‹percent›]) | ([auto-delete ‹enable|disable›]) | ([activate-on-create ‹enable|disable›]) Affiche et définis les valeurs de configuration d'un snapshot. Possède les options suivantes:

        snap-max-soft-limit ‹count› option globale.
        snap-max-soft-limit ‹percent› option globale
        auto-delete ‹enable|disable› option globale. permet de conserver snap-max-soft-limit snapshots au maximum
        activate-on-create ‹enable|disable› active le snapshot à la création

snapshot activate ‹snapname› Active le snapshot spécifié.
snapshot deactivate ‹snapname› Désactive le snapshot spécifié

Commande heal

volume heal ‹VOLNAME› déclenche l'indexe de réparation pour les fichiers qui doivent être réparés
volume heal ‹VOLNAME› [enable|disable] Active/désactive le service d'auto-réparation pour le volume
volume heal ‹VOLNAME› full Déclenche l'auto-réparation sur tous les fichiers
volume heal ‹VOLNAME› info Liste les fichiers qui doivent être réparés
volume heal ‹VOLNAME› info split-brain Liste les fichiers sont à l'état split-brain
volume heal ‹VOLNAME› statistics Affiche les statistiques
volume heal ‹VOLNAME› statistics heal-count Affiche le compteur de fichiers à réparer
volume heal ‹VOLNAME› statistics heal-count replica ‹HOSTNAME:BRICKNAME› Affiche le nombre de fichiers à réparer depuis un sous-volume réplica particulier auquel le brick ‹HOSTNAME:BRICKNAME› appartient
volume heal ‹VOLNAME› split-brain bigger-file ‹FILE› Répare le fichier qui est en état split-brain en choisissant le plus gros fichier dans le réplica
volume heal ‹VOLNAME› split-brain source-brick ‹HOSTNAME:BRICKNAME› Sélectionne ‹HOSTENAME:BRICKNAME› comme source pour tous les fichiers qui sont en split-brain dans ce réplica et les répare
volume heal ‹VOLNAME› split-brain source-brick ‹HOSTNAME:BRICKNAME› ‹FILE› Sélection le fichier à l'état split-brain comme source et complète la réparation

Autres commandes

get-state [‹daemon›] [odir ‹/path/to/output/dir/›] [file ‹filename›] Affiche l'état du service mentionné et stocke les données à l'emplacement spécifié
^
12 février 2015

htmlpdflatexmanmd




mount.glusterfs

mount.glusterfs

script pour monter un volume glusterfs natif

OPTIONS

log-file=LOG-FILE Fichier à utiliser pour les logs
log-level=LOG-LEVEL Sévérité des logs (TRACE, DEBUG, INFO, WARNING, ERROR et CRITICAL)
acl Support des acl
fopen-keep-cache ne vide pas le cache à l'ouverture du fichier
selinux support selinux
worm mode worm
aux-gfid-mount Active l'accès au système de fichier via gfid directement
ro mode lecture seule
enable-ino32=BOOL Utilise des inodes 32-bits au lieu de 64-bits
mem-accounting Active l'accounting de mémoire interne
capability Active la capability fichier
attribute-timeout=SECONDS timeout pour les inodes dans le module fuse (défaut: 1)
entry-timeout=SECONDS timeout pour le module fuse (défaut: 1)
background-qlen=N longueur de file du module fuse (défaut: 64)
gid-timeout=SECONDS timeout de liste de group auxiliaire pour le traducteur fuse (défaut: 0)
negative-timeout=SECONDS timeout négatif dans le module fuse (défaut: 0)
volume-name=VOLUME-NAME nom du volume à utiliser pour le point de montage
direct-io-mode=disable désactive le mode E/S direct
congestion-threshold=N Seuil de congestion du module fuse (défaut: 48)
backup-volfile-servers=SERVERLIST liste de serveurs de backups du volume au format suivant: mount -t glusterfs -obackup-volfile-servers=‹server2›:‹server3›:...:‹serverN› ‹server1›:/‹volname› ‹mount_point›
backupvolfile-server=SERVER liste de serveurs de backups du volume au format suivant: mount -t glusterfs -obackupvolfile-server=‹server2› ‹server1›:/‹volname› ‹mount_point›
background-qlen=N longueur de file du module fuse (défaut: 64)
no-root-squash=BOOL désactive le root squashing pour le client trusté (défaut: off)
root-squash=BOOL Active le root squashing pour le client trusté (défaut: on)
use-readdirp=BOOL mode readdirp
^
12 février 2015

htmlpdflatexmanmd




glusterfs

glusterfs

Système de fichier clusterisé

OPTIONS

-f, --volfile=VOLUME-FILE Fichier à utiliser comme volume (défaut: /etc/glusterfs/glusterfs.vol)
-l, --log-file=LOGFILE Fichier à utiliser pour les logs
-L, --log-level=LOGLEVEL Sévérité des logs (TRACE, DEBUG, INFO, WARNING, ERROR et CRITICAL)
-s, --volfile-server=SERVER Serveur d'où vient le volume
--volfile-max-fetch-atempts=MAX-ATTEMPTS Nombre max de connexion à tenter auprès du serveur.
--acl Monte le système de fichier avec le support des ACL POSIX
--debug Mode debug
--enable-ino32=BOOL Utilise des inodes 32-bits pour les application qui ne supportent pas les inodes 64-bits
--fopen-keep-cache Ne purge pas le cache sur les fichiers ouverts
-N, --no-daemon Ne lance pas en tâche de fond
-p, --pid-file=PIDFILE Fichier pid à utiliser
--read-only Monte le système de fichier en lecture seul
--selinux Active le labeling SELinux dans les inodes
-S, --socket-file=SOCKFILE Fichier socket à utiliser pour les communications interprocess.
--volfile-id=KEY Clé du fichier volume à récupérer sur le serveur
--volfile-server-port=PORT Port du volfile
--volfile-server-transport=TRANSPORT type de transport pour le volume (défaut: tcp)
--volume-name=VOLUME-NAME Nom du volume à utiliser pour le point de montage
--worm Monte le système de fichier en mode 'worm'
--xlator-option=VOLUME-NAME.OPTION=VALUE Ajoute/remplace une options de traduction pour un volume avec la valeur spécifiée

Options fuse

--attribute-timeout=SECONDS timeout pour les inodes dans le module fuse (défaut: 1)
--background-qlen=N Longueur de file du module fuse (défaut: 64)
--congestion-threshold=N Seuil de congestion du module fuse (défaut: 48)
--direct-io-mode=BOOL Active/désactive le mode direct-io dans le module fuse.
dump-fuse=PATHR Dump le trafique fuse dans le chemin spécifié
--entry-timeout=SECONDS timeout dans le module fuse (défaut: 1)
--gid-timeout=SECONDS Définis le timeout de liste de groupe auxilaire pour le traducteur fuse. Défaut: 0
--negative-timeout=SECONDS Timeout négatif dans le module fuse (défaut: 0)
--volfile-check Active la vérification de fichier volume stricte

Exemples

Lancer un serveur avec un volume nommé foo:
glusterfsd -s localhost --volfile-id foo.server.media-disk-1 -p /var/lib/glusterd/vols/foo/run/server-media-disk-1.pid -S /tmp/‹uniqueid›.socket --brick-name /media/disk-1 -l /var/log/glusterfs/bricks/media-disk-1.log --brick-port 24009 --xlator-option foo-server.listen-port=24009
Monter un volume nommé foo sur le serveur bar avec le niveau de log DEBUG sur le point de montage /mnt/foo
glusterfs --log-level=DEBUG --volfile-id=foo --volfile-server=bar /mnt/foo
^
12 février 2015

htmlpdflatexmanmd




glusterd

glusterd

Service gluster

OPTIONS

-l ‹LOGFILE›, --log-file=‹LOGFILE› Fichier à utiliser pour les logs
-L ‹LOGLEVEL›, --log-level=‹LOGLEVEL› Sévérité des logs (TRACE, DEBUG, INFO, WARNING, ERROR et CRITICAL)
--debug Mode debug
-N, --no-daemon Ne lance pas en tâche de fond
^
07 février 2015

htmlpdflatexmanmd




collie

collie

Utilitaire en ligne de commande pour le service sheep

OPTIONS

-a, --address Spécifie l'adresse du service. Défaut: localhost
-p, --port Spécifie le port du service.
-i, --index Spécifie l'index des data objects
-s, --snapshot Spécifie un id de snapshot ou un nom de tag
-P, --prealloc Préalloue tous les data objects
-r, --raw Mode de sortie brute: omet les en-tête, sépare les champs avec un simple espace et affiche les tailles en octet décimal
-d, --delete Supprime une clé
-x, --exclusive Active le mode d'écriture exclusive
-b, --store Spécifie le backend store
-c, --copies Spécifie le niveau de redondance des données. (nombre de copies à maintenir)
-m, --mode [safe|quorum|unsafe] Contrôle le comportement quand il y a trop peu de nœuds pour la redondance configurée. safe arrête le cluster (nr_nodes ‹ nr_copies), quorum arrête le cluster (r_nodes ‹ nr_copies/2 + 1), unsafe n'arrête jamais le cluster.
-f, --force Ne demande jamais confirmation
-R, --restore Restaure le cluster

Commandes et sous-commandes

vdi create [-P|--prealloc] [-a|--address address] [-p|--port port] [-h|--help] ‹vdiname› ‹size›
Crée un image
vdi snapshot [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Créer un snapshot
vdi check [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Vérifie et répare la consistance d'une image
vdi clone [-s snapshot] [-P] [-a address] [-p port] [-h] ‹src vdi› ‹dst vdi›
Clone une image
vdi delete [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Supprime une image
vdi rollback [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Applique un snapshot au vdi courant
vdi list [-a address] [-p port] [-r] [-h] [vdiname]
Liste les images
vdi track [-i index] [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Affiche les traces d'objet dans l'image
vdi tree [-a address] [-p port] [-h]
Affiche les images en arborescence
vdi graph [-a address] [-p port] [-h]
Affiche les images au format Graphviz
vdi object [-i index] [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Affiche les informations d'objet dans l'image
vdi setattr [-d] [-x] [-a address] [-p port] [-h] ‹vdiname› ‹key› [value]
Définis un attribut VDI
vdi getattr [-a address] [-p port] [-h] ‹vdiname› ‹key›
Lis un attribut vdiname
vdi resize [-a address] [-p port] [-h] ‹vdiname› ‹new size›
Redimensionne une image
vdi read [-s snapshot] [-a address] [-p port] [-h] ‹vdiname› [‹offset› [‹len›]]
Lis les données d'une image
vdi write [-a address] [-p port] [-h] ‹vdiname› [‹offset› [‹len›]]
Écris les données dans une image
vdi backup [-s snapshot] [-F from] [-a address] [-p port] [-h] ‹vdiname›
Crée un backup incrémentale entre 2 snapshots
vdi restore [-s snapshot] [-a address] [-p port] [-h] ‹vdiname›
Restore un snapshot depuis un backup
node kill [-a address] [-p port] [-r] [-h] ‹node id›
Termine un nœud
node list [-a address] [-p port] [-r] [-h]
Liste les nœuds
node info [-a address] [-p port] [-r] [-h]
Affiche des informations sur chaque nœud
node recovery [-a address] [-p port] [-r] [-h]
Affiche les nœuds actuellement en récupération
cluster info [-a address] [-p port] [-r] [-h]
Affiche des informations sur le cluster
cluster format [-b store] [-c copies] [-m mode] [-a address] [-p port] [-h]
Créer un store sheepdog
cluster shutdown [-a address] [-p port] [-h]
Stop sheepdog
cluster recover info [-a address] [-f] [-p port] [-h]
Affiche le status de récupération
cluster recover force [-a address] [-f] [-p port] [-h]
Force la récupération du cluster immédiatement
cluster recover enable [-a address] [-f] [-p port] [-h]
Active la récupération automatique et la lance si nécessaire
cluster recover disable [-a address] [-f] [-p port] [-h]
Désactive la récupération automatique
^
07 février 2015

htmlpdflatexmanmd




sheepfs

sheepfs

Pseudo système de fichier qui exporte l'état interne de sheepdog et le stockage sheepdog.

Description

   sheepfs est un pseudo système de fichier basé sur FUSE pour accéder à l'état interne de sheepdog, et au stockage. L'idée ici est qu'il est parfois utile d'envisager une interaction avec un objet Sheepdog en terme de structure de répertoire et les opérations du système de fichiers.

OPTIONS

-a, --address Spécifie l'adresse du service. Défaut: localhost
-p, --port Spécifie le port du service. Défaut: 7000
-d, --debug Affiche des message de debuggage
-f, --foreground Empêche le service de passe en tâche de fond
-k, --pagecache Utilise le cache de page du kernel pour accéder au volume
-n, --noobjectcache Désactive le cache d'objet des volumes attachés
^
07 février 2015

htmlpdflatexmanmd




sheep

sheep

Système de stockage block distribué pour KVM

Description

   sheepdog est un système de stockage distribué pour KVM/QEMU. Il fournis une haute disponibilité des volumes de stockages au niveau block aux machines virtuelles. Sheepdog supporte la gestion avancée des volumes tel que les snapshots, clonage, et provisioning. L'architecture de Sheepdog est pleinement symétrique; il n'y a pas de nœud central tel qu'un serveur de méta-données. Le service est appelé sheep. Un utilitaire en ligne de commande est disponible via collie. Les machines virtuelles QEMU/KVM utilisent le service sheep via un pilote block disponible dans qemu.

OPTIONS

-P, --pidfile Créé un fichier pid
-p, --port Spécifie le port de communication
-f, --foreground Empêche le service de passe en tâche de fond
-d, --debug Affiche des message de debuggage
-D, --directio Active l'E/S direct en accédant au cache d'objet
-z, --zone Spécifie l'id de zone de disponibilité
-c, --cluster Spécifie le pilote du cluster
-g, --gateway L'instance sheep fonctionne en mode gateway
-l, --loglevel Spécifie le niveau de log
-o, --stdout Les logs sont envoyé sur stdout
-s, --disk-space Spécifie l'espace disque disponible en Mo
-w, --enable-cache size[,mode] Active le cache d'objets et spécifie la taille max du cache en Mo et son mode (writethrough ou writback)
-y, --myaddr Spécifie l'adresse IP d'annonce aux autres sheep

path

   Un système LSB stocke les fichiers dans /var/lib/sheepdog. Le script init utilise ce répertoire par défaut. Le répertoire doit être sur un système de fichier avec le support xattr. Dans le cas de ext3, user_xattr devrait être ajouté aux options de montage. mount -o remount,user_xattr /var/lib/sheepdog.
^
25 janvier 2015

htmlpdflatexmanmd




zfs

zfs

Configure des systèmes de fichiers ZFS

Description

   La commande zfs configure des datasets ZFS dans des pools de stockage ZFS. Un dataset est identifié par un chemin unique dans l'espace de nom ZFS. par exemple pool/{filesystem,volume,snapshot} où la longueur maximum d'un nom de dataset est MAXNAMELEN (256octets). Un dataset peut être un des suivants:

filesystem Un dataset ZFS de type filesystem peut être monté dans l'espace de nom système standard et fonctionne comme tout autre système de fichier. Bien que les système de fichiers ZFS sont conçus pour être conforme POSIX, des problème connus existent qui empêche la conformité dans certains cas. Les applications qui dépendent des conformités standard peut échouer lors de la vérification de l'espace disque disponible.
volume Un volume logique exporté comme périphérique block ou brute. Ce type de dataset devrait seulement être utilisé sous des circonstances particulière. Les systèmes de fichier sont typiquement utilisé dans la plupart des environnements.
snapshot Une version lecture seul d'un filesystem ou volume à un point donné dans le temps. C'est spécifié en filesystem@name ou volume@name.

Hiérarchie des systèmes de fichier

   Un pool de stockage ZFS est une collection logique de périphériques qui fournissent de l'espace pour les datasets. Un pool de stockage est également la racine de la hiérarchie de système de fichiers ZFS. La racine du pool peut être accédé comme système de fichier, tel que monter et démonter, prendre des snapshots, et définir des propriétés. Les caractéristiques de stockage physique, cependant, sont gérés par la commande zpool.

Snapshots

   Un snapshot est une copie lecture seul d'un système de fichier ou un volume. Les snapshots peuvent être crées extrêment rapidement, et ne consomment initialement aucun espace dans le pool. Comme les données dans le dataset actif changent, le snapshot consomme plus de données et qui sont partagés avec le dataset actif. Les snapshots peuvent avoir des noms arbitraires. Les snapshots de volumes peut être clonés ou annulés, mais ne peuvent pas être accédés indépendamment.

   Les snapshots de filesystem peuvent être accédés sous le répertoire .zfs/snapshot dans le système de fichier racine. Les snapshots sont automatiquement montés à la demande et peuvent être démontés à intervalles réguliers. La visibilité du répertoire .zfs peut être contrôlé par la propriété snapdir.

Clones

   Un clone est un volume en écriture ou un système de fichier dont le contenu initial est le même qu'un autre dataset. Comme avec les snapshots, créer un clone est presque instantané, et ne consomme pas d'espace disque initialement.

   Les clones peuvent seulement être créés depuis un snapshot. Quand un snapshot est cloné, il créé une dépendance implicit entre le parent et l'enfant. Même quand un clone est créé ailleurs dans la hiérarchie de dataset, le snapshot original ne peut pas être détruit tant qu'un clone existe. La propriété origin expose cette dépendance, et la commande destroy liste de telles dépendances, si elles existent.

   La relation de dépendance des parent/enfant des clones peut être renversé en utilisant la sous-commande promote. Le système de fichier "origin" devient un clone du système de fichier spécifié, qui rend possible de détruire le système de fichier depuis lequel le clone avait été créé.

Points de montage

   Créer un système de fichier ZFS est une opération simple, donc le nombre de systèmes de fichier par système est susceptible d'être nombreux. Pour faire face à cela, ZFS gère automatiquement le montage et le démontage des systèmes de fichiers sans avoir besoin d'éditer /etc/vfstab. Tous les systèmes de fichiers gérés automatiquement sont montés par ZFS au boot.

   Par défaut, les systèmes de fichiers sont montés sous /path, où path est le nom du système de fichier dans l'espace de nom ZFS. Les répertoires sont créés et détruis si nécessaires.

   Un système de fichier peut également avoir un point de montage dans la propriété mountpoint. Ce répertoire est créé si nécessaire, et ZFS monte automatiquement le système de fichier quand zfs mount -a est invoqué (sans éditer /etc/vfstab). mountpoint peut être hérité, donc si pool/home a un point de montage de /export/stuff, alors le pool/home/user hérite automatiquement d'un point de montage /export/stuff/user.

   Une propriété mountpoint de système de fichier à none empêche le système de fichier d'être monté. Si nécessaire, les systèmes de fichiers ZFS peuvent également être gérés avec les outils traditionnels. Si un point de montage de système de fichier est mis à legacy, ZFS ne tente pas de gérer le système de fichier.

Zones

   Un système de fichiers ZFS peut être ajouté à une zone non-globale en utilisant la sous-commande zonecfg add fs. Un système de fichier ZFS qui est ajouté à une zone non-globale doit avoir sa propriété mountpoint à legacy.

   Les propriétés physiques d'un système de fichier ajouté sont contrôlé par l'administrateur global. Cependant, l'administrateur de zone peut créer, modifie, ou détruire des fichiers dans le système de fichier ajouté, en fonction de la manière dont le système de fichier est monté.

   Un dataset peut également être délégué dans une zone non-globale en utilisant la sous-commande zonecfg add dataset. Vous ne pouvez pas déléguer un dataset à une zone et l'enfant du même dataset à une autre zone. L'administrateur de zone peut changer les propriétés du dataset ou un de ses enfant. Cependant, la propriété quota est contrôlée par l'administrateur global.

   Un volume ZFS peut être ajouté comme périphérique à une zone non-globale en utilisant la sous-commande zonecfg add device. Cependant, ses propriétés physiques peuvent être modifiées seulement par l'administrateur global.

   Après qu'un dataset est délégué à une zone non-globale, la propriété zoned est automatiquement définie. Un système de fichier zoned ne peut pas être monté dans la zone globale, vu que l'administrateur de zone peut avoir définis le point de montage à des valeurs inacceptables.

   L'administrateur global peut effacer la propriété zoned, bien que cela devrait être fait avec une extrême attention. L'administrateur global devrait vérifier que tous les points de montage sont acceptable avant d'effacer cette propriété.

Déduplication

   La déduplication est un processus pour supprimer les données redondantes au niveau block, réduisant la quantité globale de données stockée. Si un système de fichier a la propriété dedup, les blocks de données dupliqués sont supprimés de manière synchrone. Le résultat est que seul une donnée unique est stockée et les composants communs sont partagés entre les fichiers.

Propriétés natives

   Les propriétés sont divisées en 2 types, les propriétés natives et les propriétés définis par l'utilisateur ( user ). Les propriétés natives exportent des statistiques internes ou contrôle le fonctionnement de ZFS. En plus, les propriétés natives sont soit éditables, soit lecture-seul. Les propriété user n'ont pas d'effet sur le fonctionnement de ZFS, mais peuvent être utilisés pour annoter les datasets d'une manière significative dans l'environnement.

   Tout dataset a un jeu de propriété qui exporte des statistiques sur le dataset aussi bien que contrôles divers modes. Les propriétés sont hérités du parent sauf s'ils sont spécifiés dans l'enfant. Certaines propriétés s'appliquent uniquement à certains type de datasets.

   Les valeurs des propriétés numériques peuvent être spécifié en utilisant des suffixes human-readable (ex: k, KB, M, Gb, etc.). Les valeurs de propriétés non-numériques sont sensibles à la casse et doivent être en minuscule, sauf pour mountpont, sharenfs, et sharesmb.

   Les propriétés natives suivantes consistent de statistiques lecture-seules sur le dataset. Ces propriétés ne peuvent être ni des jeux, ni hérités. Les propriétés natives s'appliquent à tous les types de dataset sauf mention contraire.

available La quantité d'espace disponible dans le dataset et tous ses enfants, assumant qu'il n'y a pas d'autre activité dans le pool. Parce que l'espace est partagé dans le pool, la disponibilité peut être limité par plusieurs facteurs, incluant la taille physique du pool, quotas, reservations, ou d'autres datasets dans le pool.
compressratio Le ratio de compression pour ce dataset, exprimé en multiplicateur. La compression peut être activée avec zfs set compression=on. Défaut: off.
creation La date de création du dataset
defer_destroy Cette propriété est on si le snapshot a été marqué pour une destruction déférée en utilisant la commande zfs destroy -d. Sinon, la propriété est off.
origin Pour les systèmes de fichier ou les volumes clonés, le snapshot depuis lequel le clone a été créé. L'origine ne peut pas être supprimé tant qu'un clone existe.
referenced La quantité de donnée qui est accessible par ce dataset, qui peut être partagé ou non avec d'autre datasets dans le pool. Quan un snapshot ou un clone est créé, il référence initialement la même quantité d'espace que le système de fichier ou le snapshot depuis lequel il a été créé, vu que son contenu est identique.
type le type de dataset: filesystem, volume, ou snapshot
used La quantité d'espace disque consommé par ce dataset et tous ses descendants. C'est la valeur qui est comparée au quota et à la réservation du dataset. L'espace utilisé n'inclus pas cette réservation du dataset, mais prend en compte les réservations de tous les dataset descendants. La quantité d'espace qu'un dataset consomme depuis son parent, aussi bien que la quantité d'espace qui sont libérés si ce dataset est détruit récursivement, est supérieur à son espace utilisé et sa réservation.

   Quand des snapshots sont créés, leur espace est initialement partagé entre le snapshot et le système de fichier, et possiblement avec les snapshots précédents. Vu que le système de fichier change, l'espace qui a été précédemment partagé devient unique au snapshot, et compté dans l'espace utilisé du snapshot. Additionnellement, supprimer les snapshots peut augmenter la quantité d'espace unique à ( et utilisé par ) d'autre shapshots.

   La quantité d'espace utilisé, disponible, ou référencé ne prend pas en compte les changements en attente, Ces changements en attente sont généralement pris en comptes dans les secondes qui suivent. Envoyer un changement au disque avec fsync ou O_SYNC ne garantit pas nécessairement que les informations d'utilisation de l'espace est mis à jours immédiatement.

usedby*  Les propriétés usedby* décomposent les propriétés used dans les diverses raisons pour lequel l'espace est uilisé. Spécifiquement, used = usedbychildren + usedbydataset + usedbyrefreservation +, usedbysnapshots. Ces propriétés sont seulement disponible pour les datasets créés dans des pools version 13.
usedbychildren La quantité d'espace utilisé par l'enfant de ce dataset, qui serait libéré si tous le dataset de l'enfant était détruit.
usedbydataset La quantité de l'espace utilisé par ce dataset lui-même, qui serait libéré si le dataset était détruit.
usedbyrefreservation La quantité d'espace utilisé par un refreservation définis dans ce dataset, qui serait libéré si refreservation était supprimé.
usedbysnapshots La quantité d'espace consommé par les snapshots de ce dataset. En particulier, c'est la quantité d'espace qui aurait été libéré si tous les snapshots de ce dataset étaient supprimés. Noter que ce n'est pas simplement la somme des propriétés used des snaphots parce que l'espace peut être partagé par plusieurs snapshots.
userused@user La quantité d'espace consommé par l'utilisateur spécifié dans ce dataset. L'espace est calculé pour le propriétaire de chaque fichier, tel qu'affiché par ls -l. La quantité d'espace est affiché par du et ls -s.

   Les utilisateurs non-privilégiés peuvent accéder seulement à leur propre espace. L'utilisateur root, ou un utilisateur qui a obtenu le privilège userused avec zfs allow, peut accéder à l'utilisation de tout le monde.

   userused@... n'est pas affiché par zfs get all. Le nom de l'utilisateur doit être ajouté après les @, en utilisant un des formes suivantes:

        - Nom POSIX ( ex: joe )
        - ID numérique POSIX (ex: 789)
        - Nom SID (ex: joe.smith@mydomain)
        - ID numérique SID (ex: S-1-123-456-789)

userrefs Cette propriété est définie au nombre d'utilisateurs dans ce snapshot, définis par la commande zfs hold.
groupused@group La quantité d'espace consommée par le groupe spécifié dans ce dataset. L'espace est calculé au groupe de chaque fichier, comme affiché par la commande ls -l. Les utilisateurs non-privilégiés peuvent seulement accéder à l'espace de leur propre groupe. L'utilisateur root, ou un utilisateur qui a obtenu le privilège groupused peuvent accéder à l'utilisation de tous les groupes.
volblocksize=blocksize Pour les volumes, spécifie la taille de block du volume. blocksize en peut pas être changé une fois le volume écrit, donc il doit être définis à la création. Défaut: 8Koctets. Tout puissance de 2 de 512o à 128Ko sont valides.

   Les propriété natives suivantes peuvent être utilisée pour changer le comportement d'un dataset:

aclinherit=discard | noallow | restricted | passthrough | passthrough-x Contrôle comment les entrées d'ACL sont hérités quand des fichiers et des répertoires sont créés. Un système de fichier avec une propriété aclinherit à discard n'hérite d'aucune entrée ACL. Un système de fichier avec une propriété aclinherit à noallow hérite uniquement des ACL héritables qui spécifient des permissions "deny". La valeur "restricted" (le défaut) supprime les permissions write_acl et write_owner quand l'entrée d'ACL est héritée. Un système de fichier avec une propriété aclinherit à passthrough hérite de toutes les entrées d'ACL héritables sans modification. passthrough-x à la même signification, excepté que les ACE owner@, group@ et everyone@ héritent des permissions d'exécution uniquement si le mode de création de fichier demande également le bit d'exécution.

   Quand la valeur de propriété est définie à passthrough les fichiers sont créés avec un mode déterminé par les ACE héritables. Si aucune ACE héritable n'existe qui affecte ce mode, alors le mode est définis en accord avec le mode demandé depuis l'application.

aclmode=discard | groupmask | passthrough Contrôle comment une ACL est modifiée durant un chmod. Un système de fichier avec une propriété aclmode à discard supprime toutes les entrées ACL qui ne représentent pas le mode du fichier. Une propriété aclmode a groupmask (le défaut) réduit les permissions utilisateur ou groupe. Les permission sont réduit, tel qu'ils ne sont pas supérieurs que les bits de permissions du groupe, sauf si c'est une entrée utilisateur qui a le même UID que le propriétaire du fichier ou répertoire. Dans ce cas, les permissions d'ACL sont réduites pour qu'elle ne soient pas supérieurs aux bits de permission du propriétaire. Un système de fichier avec une propriété aclmode à passthrough indique qu'aucun changement n'est fait aux ACL autre que générer les entrées ACL nécessaires pour représenter le nouveau mode du fichier ou répertoire.
atime=on | off Contrôle si la date d'accès pour les fichiers est mis à jours quand ils sont lus. Désactiver cette propriété évite de produire du trafic d'écriture en lisant des fichiers et peut augmenter les performances d'écritures. Défaut: on.
canmount=on | off | noauto À off, le système de fichier ne peut pas être monté, et est ignoré par zfs mount -a. C'est similaire à définir mountpoint à none, excepté que le dataset aura une propriété mountpoint définie, qui peut être hérité. Définir cette propriété à off permet aux datasets d'être utilisé seulement comme mécanisme d'héritage de propriété. Un exemple est d'avoir 2 datasets avec le même nountpoint, donc l'enfant des 2 datasets apparaît dans le même répertoire, mais peut avoir des caractéristiques hérités différents.

   Quand l'option noauto est définis, un dataset peut seulement être monté de démonté explicitement. Le dataset n'est pas monté automatiquement quand le dataset est créé ou importé, ni n'est monté par zfs mount -a ou démonté par zfs umount -a. Cette propriété n'est pas héritée.

checksum=on | off | fletcher2,| fletcher4 | sha256 Contrôle le checksum utilisé pour vérifier l'intégrité des données. La valeur par défaut est on, qui sélectionne automatiquement un algorithme approprié ( actuellement, fletcher4). Changer cette propriété n'affecte que les données nouvellement écrites.
compression=on | off | lzjb | gzip | gzip-N | zle Contrôle l'algorithme de compression utilisé pour ce dataset. L'algorithme lzjb est optimisé pour les performances tout en proposant un taux de compression correct. on équivaut à lzjb. Changer cette propriété n'affecte que les données nouvellement écrites.
copies=1 | 2 | 3 Contrôle le nombre de copies de données stockées pour ce dataset. Ces copies sont en plus de toute redondances fournies par le pool. Les copies sont stockée sur différents disques, si possible. Changer cette propriété n'affecte que les données nouvellement écrites. Cependant, définir cette propriété à la création du système de fichier en utilisant l'option -o copies=N
dedup=on | off | verify | sha256[,verify] Contrôle si la déduplication est en effet pour un dataset. Défaut: off. Le checksum utilisé pour la déduplication est sha256. Quand activé, l'algorithme de checksum écrase la propriété checksum. Définir la valeur à verify est équivalent à spécifier sha256,verify. À verify, quand 2 blocks ont la même signature, ZFS fait une comparaison supplémentaire bit à bit.
devices=on | off Contrôle si les périphérique peuvent être ouvert dans ce système de fichier. Défaut: on.
exec=on | off Contrôle si les processus peuvent être exécutés depuis ce système de fichier. Défaut: on.
mlslabel=label | none Label de sensibilité qui détermine si un dataset peut être monté dans une zone dans le système avec Trusted Extensions activé. Si le dataset labelisé correspond à la zone labelisée, la dataset peut être monté et accédé depuis la zone labélisée.

   Quand cette propriété n'est pas définie, la valeur par défaut est none. Définir à none est équivalent à supprimer cette propriété.

   Cette propriété peut être modifiée seulement quand Trusted Extensions est activé et seulement avec les privilèges appropriés. Les droits de le modifier ne peut pas être délégué. En changeant un label à un label supérieur ou en définissant le label initial, le privilège {PRIV_FILE_UPGRADE_SL} est requis. En changeant un label à un label inférieur ou à none, le privilège {PRIV_FILE_DOWNGRADE_SL} est requis. Changer le dataset à des labels autre que none peut être fait seulement quand le dataset n'est pas monté. Quand un dataset avec le label none est monté dans une zone labélisée, l'opération de montage définis automatiquement le mlslabel au label de cette zone.

mountpoint=path | none | legacy Contrôle le point de montage utilisé pour ce système de fichier. quand mountpoint est changé pour un système de fichier, le système de fichier et ses enfants qui héritent du point de montage sont démontés. Si la nouvelle valeur est legacy, alors ils restent démontés. Sinon, ils sont automatiquement remontés dans le nouvel emplacement si la propriété était précédemment legacy ou none, ou s'ils étaient montés avant que la propriété a été changée. En plus, tous système de fichiers partagé sont départagés et partagés dans le nouvel emplacement.
nbmand=on | off Contrôle si le système de fichier devrait être monté avec nbmant (Non Blocking mandatory locks). C'est utilisé pour les clients CIFS. Changer cette propriété prend effet seulement quand le système de fichier est démonté et remonté.
primarycache=all | none | metadata Contrôle ce qui est caché dans le cache primaire (ARC). Si cette propriété est à all, les données utilisateur et les métadonnées sont cachées. Si cette propriété est à none, rien n'est caché. Si cette propriété est définie à metadate, seul les metadate sont cachés. Défaut: all.
quota=size | none Limite la quantité d'espace qu'un dataset et ses descendants peuvent consommer. Cette propriété force une limite hard dans la quantité d'espace utilisée. Cela inclus tout l'espace consommé par ses descendants, incluant les systèmes de fichiers et les snapshots. Définir un quota dans un descendant d'un dataset qui a déjà un quota n'écrase par le quota de l'ancêtre, mais impose une limite additionnelle. Les quota ne peuvent pas être définis dans les volumes, vu que volsize agit comme quota implicite.
userquota@user=size | none Limite la quantité d'espace consommée par l'utilisateur spécifié. Similairement à la propriété refquota, le calcul de l'espace userquota n'inclus pas l'espace qui est utilisé par les datasets descendant, tel les snapshots et les clones. La consommation d'espace de l'utilisateur est identifié par la propriété userspace@suser.

   Forcer les quotas utilisateur peut être retardé de quelques secondes. Ce délai signifie qu'un utilisateur peut excéder son quota avec que le système notifie qu'il est hors quota. Le système va commencer à refuser les écritures additionnelles avec le message d'erreur EDQUOT.

   Les utilisateurs non-privilégiés peut seulement accéder à l'utilisation de l'espace de leur propre groupe. L'utilisateur root, ou un utilisateur qui a obtenu le privilège userquota avec zfs allow peut obtenir et définir le quota pour tout le monde.

   Cette propriété n'est pas disponible pour les volumes, et dans les systèmes de fichier avant v4 et les pools avant v15. Les propriétés userquota ne sont pas affichés par zfs get all. Le nom de l'utilisateur doit être ajouté après les @, en utilisant un des formes suivantes:

groupquota@group=size|none Limite la quantité d'espace consommé par le groupe spécifié.
readonly=on|off Contrôle si le dataset peut être modifié. Défaut: off.
recordsize=size Spécifie une taille de block suggérée pour les fichiers dans le système de fichier. Cette propriété est conçue pour être utilisé avec des bases de données qui accèdent à des enregistrement de taille fixe.
refquota=size|none Limite la quantité d'espace qu'un dataset peut consommer. Cette propriété force une limite hard sur la quantité d'espace utilisé. Cette limite n'inclue pas l'espace utilisé par les descendants, incluant les systèmes de fichier et les snapshot.
refreservation=size|none La quantité minimum d'espace garantit pour un dataset, n'incluant pas ses descendants. Quand la quantité d'espace utilisé est inférieur à cette valeur, le dataset est traité comme s'il prenait cette espace. Si refreservation est définis, un snapshot est seulement permis s'il y a suffisamment d'espace disponible dans le pool en dehors de cette réservation.
reservation=size|none Quantité minimum garantie pour un dataset et ses descendants. Quand la quantité d'espace utilise est inférieur à cette valeur, le dataset est traité comme s'il prenait cet espace.
secondarycache=all|none|metadata Contrôle ce qui est mis en cache secondaire (L2ARC). Si cette propriété est définie à all, les données utilisateurs et les métadonnées sont cachés.
setuid=on|off Contrôle si le bit set-uid est respecté pour le système de fichier. Défaut: on
shareiscsi=on|off Comme sharenfs, indique si un volume ZFS est exporté comme target iSCSI. Les valeurs peuvent être on, off, et type=disk. Défaut: off.
sharesmb=on|off|opts Contrôle si le système de fichier est partagé en utilisant le service Solaris CIFS, et quelles options sont utilisée.
sharenfs=on|off|opts Contrôle si le système de fichier est partagé via nfs, et quelles options sont utilisée. Un système de fichier avec la propriété sharenfs à off est géré via les outils traditionnels tel share, unshare, et dfstab. Sinon, le système de fichier est automatiquement partagé via zfs share et zfs unshare. Quand sharenfs est changé pour un dataset, le dataset et ses enfants héritant de la propriété sont partagés avec de nouvelles options, seulement si la propriété était précédemment off, ou s'il étaient partagés avant que la propriété soit changé.
logbias = latency | throughput Fournis une astuce à ZFS sur la manipulation des requêtes dans ce dataset. Si logbias est à latency (par défaut), ZFS utilise les périphériques de log du pool (si configuré) pour manipuler les requête à faible latence. À throughput, ZFS n'utilise pas les périphérique de log du pool. À la place, ZFS optimise les opérations synchrone pour le pool et l'utilisation efficace des ressources.
snapdir=hidden | visible Contrôle si le répertoire .zfs est caché ou visible dans le root du système de fichier. Défaut: hidden.
version=1 | 2 | current La version de ce système de fichier, qui est indépendant de la version du pool. Cette propriété peut seulement être définie pour les dernières versions supportées.
volsize=size Pour les volumes, spécifie la taille logique du volume. Par défaut, créer un volume établis une réservation de taille égale. Pour les pools de stockage avec un numéro de version 9 ou plus, un refreservation est définis à la place.
vscan=on | off Contrôle si les fichiers régulier devraient être scannés pour les virus quand un fichier est ouvert et fermé. En plus d'activer ce service, le service de scan de virus doit également être activé. Défaut: off.
xattr=on | off Contrôle si les attributs étendus sont activés pour ce système de fichier. Défaut: on
zoned=on | off Contrôle si le dataset est géré depuis une zone non-globale. Défaut: off.

   Les 3 propriétés suivantes ne peuvent pas être changée après la création du système de fichier. Si les propriétés ne sont pas définies avec les commandes zfs create et zpool create, ces propriété sont héritées du dataset parent.

casesensitivity=sensitive | insensitive | mixed Indique si l'algorithme de correspondance de nom de fichier utilisé par le système de fichier devrait être sensible à la casse.mixed indique que le système de fichier supporte les requêtes pour les 2 cas. Traditionnellement, les systèmes de fichiers UNIX et POSIX ont des noms de fichier sensible à la casse.
normalization = none | formC | formD | formKC | formKD Indique si le système de fichier devrait effectuer une normalisation unicode des noms de fichier quand 2 noms de fichier sont comparés. Si cette propriété est définie à une valeur autre que none et que la propriété utf8only n'est pas spécifiée, cette dernière est automatiquement mis à on. Défaut: none.
utf8only=on | off Indique si le système de fichier devrait rejeter les noms de fichier qui incluent des caractères qui ne sont pas présents dans le jeu UTF8.

Propriétés de point de montage temporaire

Quand un système de fichier est monté, soit via mount ou via zfs mount, ses options de montage sont définis en accord avec ses propriétés. La corrélation entre les propriété et les options de montage sont comme suit:
PROPERTY__________MOUNT OPTION
devices___________devices/nodevices
exec______________exec/noexec
readonly__________ro/rw
setuid____________setuid/nosetuid
xattr_____________xattr/noxattr

   En plus, ces options peuvent être définis sur une base par montage en utilisant l'option -o, sans affecter la propriété qui est stockée sur disque. Les valeurs spécifiées sur la ligne de commande écrasent celle stockées dans le dataset. L'option -nosuid est un alias pour nodevices,nosetuid.

Propriétés utilisateur

   En plus des propriétés natives standard, ZFS supporte les propriétés utilisateurs arbitraires. Les propriétés utilisateur n'ont pas d'effet sur le fonctionnement de ZFS, mais les applications et les administrateurs peut les utiliser pour annoter les datasets.

   Les noms de propriété utilisateur doivent contenir un caractère ':' pour les distinguer des propriétés natives. Ils peuvent contenis les lettre minuscules, des nombres, et les caractères: ':', '-', '.', '_'. La convention attendue est que le nom de propriété est divisée en 2 portions tel que module:property, mais cet espace de nom n'est pas forcé par ZFS. Les noms de propriété utilisateur ne peuvent pas avoir plus de 256 caractères, et ne peuvent pas commencer par un '-'.

   En utilisant des propriétés utilisateur, il est fortement suggéré d'utiliser reverse DNS pour le composant module pour réduire les chances que 2 packages indépendants utilisent le même nom de propriété pour différents buts. Les noms de propriété commençant avec com.sun. sont réservés.

   Les valeurs des propriétés utilisateur sont des chaînes arbitraires, sont toujours hérités, et ne sont jamais validées. Tous les commandes qui opèrent sur les propriétés peuvent être utilisé pour manipuler les propriétés utilisateurs également. Utiliser la commande zfs inherit pour supprimer des propriétés utilisateur. Si la propriété n'est pas définie dans un dataset parent, il est supprimé entièrement. Les valeur de propriétés sont limitées à 1024 caractères.

Volumes ZFS comme Swap ou périphériques de Dump

   Durant une installation initiale ou une mise à jours depuis un système de fichier UFS, un périphérique de swap et un périphérique de dump sont créés dans le pool root des volume ZFS. Par défaut, la taille de la zone de swap est basée sur la moitié de la mémoire physique jusqu'à 2Go. La taille du périphérique de dump dépend des prérequis du kernel à l'installation. Des volumes ZFS séparés doivent être utilisés pour les périphérique swap et dump. Ne pas swapper dans un fichier dans un système de fichier ZFS. Une configuration de fichier swap ZFS n'est pas supportée. Si vous devez changer votre zone de swap ou dump un fois le système installé, utiliser les commandes swap et dumpadm.

Sous Commandes

   Toutes les sous-commandes qui modifient l'état sont loggés de manière persistante dans le pool sous leur forme originelle.

zfs create [-p] [-o property=value] ... filesystem Crée un nouveau système de fichie zfs. Le système de fichier est automatiquement monté en accord avec les propriété mountpoint héritées du parent.

        -p Crée tous les datasets parent non-existant. les Datasets créés de cette manière sont automatiquement montés en accord avec le mountpoint hérité de leur parent. Toute propriété spécifié sur la ligne de commande est ignorée. Si le système de fichier cible existe déjà, l'opération se termine avec succès.
        -o property=value Définis la propriété spécifiée. Peut être spécifié plusieurs fois

zfs create [-ps] [-b blocksize] [-o property=value] ... -V size volume Crée un volume à la taille donnée. Le volume est exporté comme périphérique block dans /dev/zvol/{dsk,rdsk}/path, où path est le nom du volume dans l'espace de nom zfs. La taille représente la taille logique tel qu'exporté par le périphérique. Par défaut, une réservation de taille égal est créée.

        -p Crée tous les datasets parent non-existant. les Datasets créés de cette manière sont automatiquement montés en accord avec le mountpoint hérité de leur parent. Toute propriété spécifié sur la ligne de commande est ignorée. Si le système de fichier cible existe déjà, l'opération se termine avec succès.
        -s Créer un volume sparse sans réservation.
        -o property=value Définis la propriété spécifiée. Peut être spécifié plusieurs fois
        -b blocksize Équivaleunt à -o volblocksize=blocksize.

zfs destroy [-rRf] filesystem|volume Détruit le dataset donné. Par défaut, la commande départage tous systèmes de fichier partagé, démonte tous les systèmes de fichier actuellement monté, et refuse de détruire un dataset qui a une dépendance active (enfant ou clone).

        -r Détruit récursivement tout enfant
        -R Détruit récursivement toutes les dépendances, incluant les clones en dehors de la hiérarchie cible.
        -f Force à démonter les systèmes de ficiher en utilisant umount -f. N'a d'effet que sur les systèmes de fichier, et montés.

zfs destroy [-rRd] snapshot Détruit le snapshot donné si et seulement si la commande zfs destroy l'aurait détruit sans l'option -d. Si le snapshot n'est pas qualifié pour une destruction immédiate, il est marqué pour une suppression déferrée. Dans cet état, il est utilisable et visible jusqu'à ce que les conditions pour sa suppression soient rencontrées.

        -d Défère la suppression
        -r Détruit ou marque pour suppression tous les snapshots avec ce nom dans le système de fichier descendant.
        -R Détruit récursivement toutes les dépendances.

zfs snapshot [-r] [-o property=value] ... filesystem@snapname|volume@snapname Créer un snapshot avec le nom donné. Toutes les modifications précédente dans le système de fichier font partie du snaphot.

        -r Créer des snapshot récursivement pour tous les datasets descendants. Les snapshots sont pris automatiquement, donc tous les snapshots pris correspondent au même moment dans le temps.
        -o property=value Définis la propriété spécifiée.

zfs rollback [-rRf] snapshot Applique un précédent snapshot a un dataset. Par défaut, la commande refuse d'appliquer un snapshot autre que le plus récent. Les options -rR ne détruisent pas récursivement les snapshots enfant. Seul le snapshot récurisf top-level est détruit par une de ces options. pour appliquer un snapshot récursif complet, il faut l'appliquer individuellement aux snapshots enfant.

        -r Détruit récursivement tous snapshots plus récent que celui spécifié
        -R Détruit récursivement tous des snapshots plus récent, ainsi que les clones de ces snapshots.
        -f Utilisé avec -R force à démonter tous systèmes de fichier clone qui doivent être détruits

zfs clone [-p] [-o property=value] ... snapshot filesystem|volume Crée un clone d'un snapshot donné.

        -p créé tous les datasets parent non-existants. Les datasets crées de cette manière sont automatiquement montés en accord avec la propriété mountpoint héritée de leur parent.
        -o property=value Définis la propriété spécifiée.

zfs promote clone-filesystem Détache un clone de système de fichier de son snapshot original. Cela permet de détruire le système de fichier depuis lequel ce clone a été créé. La relation de dépendance de clone parent-enfant est réservée, donc le système de fichier d'origine devient un clone du système de fichier spécifié. Le snapshot qui a été cloné, et tous les snapshots précédents à ce snapshot, sont désormais possédés par le clone promus. L'espace qu'ils utilisent se déplace du système de fichier original avec le clone promus, il doit donc y avoir suffisamment d'espace pour ces snapshots. Aucun nouvel espace n'est consommé par cette opération, mais l'espace est ajusté. Le clone promu ne doit pas avoir de conflits de noms de snapshot.
zfs rename filesystem|volume|snapshot filesystem|volume|snapshot
zfs rename [-p] filesystem|volume filesystem|volume Renomme le dataset donné. La nouvelle cible peut être localisée n'importe où dans la hiérarchie ZFS, à l'exception des snapshots. Les snapshots peuvent seulement être renommés dans le système de fichier parent ou les volumes. En renommant un snapshot, le système de fichier parent du snapshot n'a pas besoin d'être spécifié comme partie du second argument. Les système de fichie renomés peuvent hériter de nouveaux points de montage, auquel cas ils sont démonté et remontés dans le nouveau point.

        -p Crée tous les datasets parent non-existant. Les datasets ainsi créés de cette manière sont automatiquement montés en accord avec la propriété mountpoint hérité du parent.

zfs rename -r snapshot snapshot Renome récursivement les snapshots de tous les datasets descendants. Les snapshots sont les seuls datasets qui peuvent être renommés récursivement.
zfs list [-r|-d depth] [-H] [-o property[,...]] [ -t type[,...]] [ -s property ] ... [ -S property ] ... [filesystem|volume|snapshot] ...Liste les informations de propriété pour les datasets donnés sous forme de tableau. Si spécifié, vous pouvez lister les informations de propriétés par chemin absolu ou relatif. Par défaut, tous les systèmes de fichier et volumes sont affichés.

        -H Utilisé pour le scripting. N'affiche pas les en-têtes, et sépare les champs par une simple tabulation.
        -r Affiche récursivement les enfants du dataset.
        -d depth Affiche récursivement les enfants du dataset, en limitant la profondeur de la récursion.
        -o property Liste de propriétés à afficher. Peut être une propriété native, utilisateur, name pour affichier le nom du dataset, et space pour afficher l'utilisation disque.
        -s property Une propriété pour le trie dans l'ordre ascendant basée sur la valeur de la propriété..
        -S property Idem mais dans l'ordre descendant.
        -t type Liste de type à affichier ( filesystem, snapshot, volume ou all).

zfs set property=value filesystem|volume|snapshot ... Définis la propriété à la valeur donnée pour chaque dataset.
zfs get [-r|-d depth] [-Hp] [-o all | field[,...] [-s source[,...]] all | property[,...] filesystem|volume|snapshot ... Affiche les propriété pour les datasets donné. si aucun dataset n'est donné, affiche les propriétés pour tous les datasets.

        -r Affiche les propriétés des enfants du dataset.
        -d depth Affiche récursivement les enfants du dataset, en limitant la profondeur de la récursion.
        -H Sort dans un format plus facile à parser par les scripts
        -o field Définis les champs à afficher, parmi: name,property,value,received,source,all
        -s source Liste de sources à afficher. chaque source doit être un parmi: local,default,inherited,temporary,received,none
        -p Affiche les nombres en valeurs parsable (exactes)

zfs inherit [-rS] property filesystem|volume|snapshot ... Efface les propriétés spécifiée, forcant l'héritage du parent.

        -r Hérite récursivement de la propriété donnée pour tous les enfants
        -S Revient à la valeur de propriété reçue si possible.

zfs upgrade [-v] affiche une liste de systèmes de fichiers qui ne sont pas à la dernière version
zfs upgrade [-r] [-V version] [-a | filesystem] Met à jours les systèmes de fichiers à une version plus récente. En générale, la version est dépendante de la version du pool.

        -a Met à jours tous les systèmes de fichier dans tous les pools importés
        filesystem Met à jours le système de fichier spécifié
        -r Met à jours le système de fichier spécifié et tous ses descendants.
        -V version Met à jours à la version spécifiée.

zfs userspace [-niHp] [-o field[,...]] [-sS field]... [-t type [,...]] filesystem | snapshot Affiche l'espace consommé, et les quotas, de chaque utilisateur dans le système de fichier spécifié ou le snapshot. Cela correspond aux propriétés userused@user et userquota@user

         -n Affiche l'ID numérique au lieu du nom
        -H Sort dans un format plus facile à parser par les scripts
        -p Affiche les nombres en valeurs parsable (exactes)
        -o field Définis les champs à afficher, parmi: type,name,used,quota. Défaut: affiche tous les champs
        -s field Trie la sortie par ce champs. Peut être spécifié plusieurs fois.
        -S field idem, mais trie dans l'ordre inverse
        -t type[,...] Affiche seulement les types spécifiés du jeu suivant: all,posixuser,smbuser,posixgroup,smbgroup. Défaut: posixuser,smbuser
        -i Traduit SID en POSIX ID.

zfs groupspace [-niHp] [-o field[,...]] [-sS field]... [-t type [,...]] filesystem | snapshot Affiche l'espace consommé, et les quotes, pour chaque groupe dans le système de fichier spécifié ou le snapshot. Cette sous commande est identique à zfs userspace, excepté que le type d'affichage pas défaut est -t posixgroup,smbgroup
zfs mount Affiche tous les systèmes de fichiers montés
zfs mount [-vO] [-o options] -a | filesystem Monte les systèmes de fichiers ZFS. Invoqué automatiquement durant le processus de démarrage

        -o options liste d'options de montage à utiliser temporairement
        -O montage overlay
        -v Reporte la progression du montage
        -a Monte tous les systèmes de fichiers zfs disponible.
        filesystem Monte le système de fichier spécifié

zfs unmount [-f] -a | filesystem|mountpoint Démonte les systèmes de fichiers zfs. Invoqué automatiquement durant le processus d'arrêt

        -f Force à démonter tous les systèmes
        -a Démonte tous les systèmes de fichiers zfs
        filesystem|mountpoint Démonte le système de fichier spécifié.

zfs share -a | filesystem Partage un système de fichier zfs

        -a Partage tous les systèmes de fichier zfs. Invoqué automatiquement durant le processus de démarrage
        filesystem Partage le systèmes de fichier en accord avec les propriétés sharenfs et sharesmb.

zfs unshare -a | filesystem|mountpoint Ne partage plus les systèmes de fichier zfs. Invoqué automatiquement durant le processus d'arrêt

        -a dé-partage tous les systèmes de fichier zfs
        filesystem|mountpoint dé-partage le système de fichier spécifié

zfs send [-DvRp] [-[iI] snapshot] snapshot Créé une représentation flux du second snapshot, qui est écris sur la sortie standard. La sortie peut être redirigée dans un fichier ou sur un système différent.

        -D Effectue un traitement dedup sur le flux.
        -i snapshot génère un flux incrémentale depuis le premier snapshot dans le second. La source incrémentale (le premier snapshot) peut être spécifié comme dernier composant du nom du snapshot (par exemple, la partie après le @ ), et il est assumé être du même système de fichier que le second snapshot. Si la destination est un clone, la source peut être le snapshot d'origine, qui doit être spécifié en entier (ex: pool/fs@origin).
        -I snapshot Génère un package flux qui envoie tous les snapshots intermédiaire depuis le premier snapshot jusqu'au second.
        -R Génère un package flux de réplication, qui va répliquer le système de fichier spécifié, et tous les systèmes de fichier descendants, jusqu'au snapshot nommé. Toutes les propriétés, snapshots, systèmes de fichiers descendants et clones sont préservés. Si -i et -I sont utilisé avec -R, un flux de réplication incrémentale est généré.
        -p Envoie les propriétés
        -v Affiche des informations sur le flux généré.

zfs receive [-vnFu] filesystem|volume|snapshot
zfs receive [-vnFu] [-d | -e] filesystem Crée un snapshot dont le contenu est spécifié dans le flux fournis sur l'entrée standard. Si un flux complet est reçu, le nouveau système de fichier est créé également.
Si un flux incrémentale est reçu, le système de destination doit déjà exister, et son snapshot le plus récent doit matcher la source du flux incrémentale. Pour les zvols, le lien du périphérique de destination est détruit et recréé, ce qui signifie que le zvol ne peut être accédé durant l'opération.
Quand un flux de réplication de snapshot généré par zfs send -R est reçu, tout snapshot qui n'existent pas dans l'emplacement d'origine est détruit via zfs destroy -d.
Le nom du snapshot (et du système de fichier, si un flux complet est reçu) que cette sous-commande créé dépends du type d'argument et des options -d ou -e.
Si l'argument est un nom de snapshot, il est créé. Si l'argument est un système de fichier ou un nom de volume, un snapshot avec le même nom que le snapshot envoyé est créé dans le système de fichier ou le volume spécifié. Si l'option -e ou -d est spécifiée, le nom du snapshot est déterminé en ajoutant le nom du snapshot au système de fichier spécifié. Si -d est spécifié, tous sauf le nom du pool du snapshot envoyé est ajouté. (ex: b/c@1 ajouté depuis a/b/c@1), et si -e est spécifié, seul la fin du chemin est ajouté (ex: c@1).

        -d Utilise tout sauf le premier élément du chemin du snapshot envoyé pour déterminer le nom du nouveau snapshot.
        Utilise le dernier élément du chemin du snapshot envoyé pour déterminer le nom du nouveau snapshot.
        -u Le système de fichier qui est associé avec le flux reçu n'est pas monté
        -v Affiche des informations sur le flux et le temps requis pour effectuer l'opération.
         -n Ne reçoit pas le flux. Utile avec -v pour vérifier le nom.
        -F Force le rollback du système de fichier au snapshot le plus récent avant d'effectuer l'opération.

zfs allow filesystem | volume Affiche les permissions qui ont été délégués dans le système de fichier spécifié ou le volume.
zfs allow [-ldug] "everyone"|user|group[,...] perm|@setname[,...] filesystem| volume
zfs allow [-ld] -e perm|@setname[,...] filesystem | volume Délègue les permissions d'administration ZFS pour les systèmes de fichier à des utilisateurs non-privilégiés.

        [-ug] "everyone"|user|group[,...] Spécifie à que des autorisation sont déléguées. Plusieurs entités peuvent être spécifiées. Si -u et -g n'est pas spécifié, l'argument est interprété préférentiellement pour tout le monde, puis comme nom d'utilisateur, et enfun comme nom de groupe. Pour spécifier un utilisateur ou un groupe nommé "everyone", utiliser -u ou -g. Pour spécifier un groupe avec le même nom que l'utilisateur, utiliser l'option -g.
        [-e] perm|@setname[,...] Spécifie les permissions à déléguer à "everyone". Plusieurs permissions peuvent être spécifiée. Les noms de permission sont les même que la même sous-commande ZFS ou nom de propriété. Voir la liste plus bas. Les noms de jeu de propriété, qui commencent par @, peuvent être spécifiés.
        [-ld] filesystem|volume Spécifie où les permissions sont déployées. Si -l et -d n'est pas pécifié, ou les 2 le sont, les permissions sont permises pour le système de fichier ou le volume, et tous ses descendants. Il seul -l est utilisé, c'est permis localement seulement pour le système de fichier spécifié. Si seul -d est utilisé, c'est permis seulement pour les systèmes de fichiers descendants.

Les permissions sont généralement la capacité d'utiliser une sous-commande ou changer une propriété zfs. Les permissions suivantes sont permises:
NAME_____________TYPE__________ NOTES
allow____________subcommand_____Doit également avoir la permission qui est permise
clone____________subcommand_____Doit également avec la capacité 'create' et 'mount' dans le système de fichier d'origine
create___________subcommand_____Doit également avoir la capacité 'mount'
destroy__________subcommand_____Doit également avoir la capacité 'mount'
hold_____________subcommand_____Permet d'ajouter un utilisateur maintenu dans un snapshot
mount____________subcommand_____Permet de monter/démonter des datasets
promote__________subcommand_____Doit également avoir les capacités 'mount' et 'promote' dans le système de fichie d'origine
receive__________subcommand_____Doit également avoir les capacités 'mount' et 'create'
release__________subcommand_____Permet d'enlever un user qui peut détuire le snapshot
rename___________subcommand_____Doit également avec la capacité 'create' et 'mount' dans le nouveau parent
rollback_________subcommand
send_____________subcommand
share____________subcommand_____Permet de partager des systèmes de fichier sur NFS ou SMB
snapshot_________subcommand
groupquota_______other__________Permet d'accéder à toutes les propriétés groupquota@...
groupused________other__________Permet de lire toutes les propriété groupused@...
userprop_________other__________Permet de changer toute propriété utilisateur
userquota________other__________Permet d'accéder à toutes les propriétés les userquota@...
userused_________other__________Permet de lire toutes les propriétés userused@...
aclinherit_______property
aclmode__________property
atime____________property
canmount_________property
casesensitivity__property
checksum_________property
compression______property
copies___________property
dedup____________property
devices__________property
exec_____________property
logbias__________property
mlslabel_________property
mountpoint_______property
nbmand___________property
normalization____property
primarycache_____property
quota____________property
readonly_________property
recordsize_______property
refquota_________property
refreservation___property
reservation______property
secondarycache___property
setuid___________property
shareiscsi_______property
sharenfs_________property
sharesmb_________property
snapdir__________property
utf8only_________property
version__________property
volblocksize_____property
volsize__________property
vscan____________property
xattr____________property
zoned____________property

zfs allow -c perm|@setname[,...] filesystem|volume Définis les permission "create time". Ces permission sont données localement au créateur d'un nouveau système de fichier descendant créé.
zfs allow -s @setname perm|@setname[,...] filesystem|volume Définis ou ajoute des permissions à un jeu de permission. Le jeu peut être utilisé par d'autres commande zfs allow pour le système de fichier spécifié et ses descendants. Les jeux sont évalués dynamiquement, donc changer un set est reflété dynamiquement. Les jeux de permission suivent les même restrictions de nommage que les systèmes de fichiers ZFS, mais le nom doit commencer par '@' et ne peut pas faire plus de 64 caractères.
zfs unallow [-rldug] "everyone"|user|group[,...] [perm|@setname[, ...]] filesystem|volume
zfs unallow [-rld] -e [perm|@setname [,...]] filesystem|volume
zfs unallow [-r] -c [perm|@setname[,...]] filesystem|volume Supprime les permissions qui ont été données avec la commande zfs allow. Aucune permissions n'est explicitement refusée, donc les permissions données restent effectives. Si aucune permission n'est spécifiée, toutes les permissions pour l'utilisateur, groupe, ou everyone sont supprimés. Spécifier everyone ou l'option -e supprime seulement les permissions qui ont été donnée à everyone.

        -r Supprime récursivement les permissions dans le système de fichier et ses descendants

zfs unallow [-r] -s @setname [perm|@setname[,...]] filesystem|volume Supprime les permissions d'un jeu de permissions. Si aucune permission n'est spécifiée, supprime toutes les permissions et supprime le jeu.
zfs hold [-r] tag snapshot... Ajoute une référence simple, nommée avec l'argument tag, au snapshot ou aux snapshots spécifiés Chaque snapshot a son propre espace de nom de tag, et les tags doivent être unique dans cet espace. Si un hold existe dans un snapshot, tenter de détruire ce snapshot en utilisant zfs destroy retourne EBUSY.

        -r Spécifie qu'un hold avec le tag donné est appliqué récursivement aux snapshots de tous les systèmes de fichiers descendants.

zfs holds [-r] snapshot... Liste toutes les références utilisateurs existant pour un snapshot donné

        -r Liste les holds qui sont définis dans les snapshots descendants nommés, en plus de lister les holds dans le snapshot nommé.

zfs release [-r] tag snapshot... Supprime une simple référence, nommée avec l'argument tax, du ou des snapshots spécifiés. Le tag doit déjà exister.

        -r Supprime récursivement un hold dans les snapshots et tous les système de fichier descendants.

Exemples

Créer une hiérarchie de système de fichier zfs:
zfs create pool/home
zfs set mountpoint=/export/home pool/home
zfs create pool/home/bob
Créer un snapshot ZFS. Ce snapshot est monté à la demande dans le .zfs/snapshot dans le système de fichier pool/home/bob:
zfs snapshot pool/home/bob@yesterday
Créer et détruire plusieurs snapshots:
zfs snapshot -r pool/home@yesterday
zfs destroy -r pool/home@yesterday
Désactive et active la compression de système de fichier
zfs set compression=off pool/home
zfs set compression=on pool/home/anne
Lister les datasets
zfs list
Définir un quota dans un système de fichier
zfs set quota=50G pool/home/bob
Lister les propriétés ZFS:
zfs get all pool/home/bob
Lister une simple propriété
zfs get -H -o value compression pool/home/bob
Liste toutes les propriété avec les paramètres locaux:
zfs get -r -s local -o name,property,value all pool/home/bob
Rollback un système de fichier
zfs rollback -r pool/home/anne@yesterday
Créer un clone:
zfs clone pool/home/bob@yesterday pool/clone
Détacher un clone:
zfs create pool/project/production
zfs snapshot pool/project/production@today
zfs clone pool/project/production@today pool/project/beta
zfs promote pool/project/beta
zfs rename pool/project/production pool/project/legacy
zfs rename pool/project/beta pool/project/production
zfs destroy pool/project/legacy
Hériter des propriétés ZFS:
zfs inherit checksum pool/home/bob pool/home/anne
Répliquer les données ZFS à distance:
zfs send pool/fs@a | ssh host zfs receive poolB/received/fs@a
poolB doit contenir le système de fichier poolB/received et ne doit pas contenir initialement pooB/received/fs
zfs send -i a pool/fs@b | ssh host zfs receive poolB/received/fs
Utiliser zfs receive -d
zfs send poolA/fsA/fsB@snap | ssh host zfs receive -d poolB/received
Définir les propriétés utilisateurs:
zfs set com.example:department=12345 tank/accounting
Créer un volume ZFS comme target iSCSI:
zfs create -V 2g pool/volumes/vol1
zfs set shareiscsi=on pool/volumes/vol1
iscsitadm list target
Maintenir un historique de snapshots dans un schéma de nommage consistant:
zfs destroy -r pool/users@7daysago
zfs rename -r pool/users@6daysago @7daysago
zfs rename -r pool/users@5daysago @6daysago
zfs rename -r pool/users@yesterday @5daysago
zfs rename -r pool/users@yesterday @4daysago
zfs rename -r pool/users@yesterday @3daysago
zfs rename -r pool/users@yesterday @2daysago
zfs rename -r pool/users@today @yesterday
zfs snapshot -r pool/users@today
Définis la propriété sharenfs dans un système de fichier zfs:
zfs set sharenfs='rw=@123.123.0.0/16,root=neo' tank/home
Déléguer les permissions d'administration dans un dataset:
zfs allow cindys create,destroy,mount,snapshot tank/cindys
zfs allow tank/cindys
Parce que les permissions du point de montage tank/cindys est à 755 par défaut, cindys ne sera pas capable de monter les systèmes de fichier sous tank/cindys. Définir une ACL similaire à la syntaxe suivante:
chmod A+user:cindys:add_subdirectory:allow /tank/cindys
Déléguer la permission create time dans un dataset:
zfs allow staff create,mount tank/users
zfs allow -c destroy tank/users
zfs allow tank/users
Définir et donner un jeu de permission dans un dataset:
zfs allow -s @pset create,destroy,snapshot,mount tank/users
zfs allow staff @pset tank/users
zfs allow tank/users
Déléguer les permissions de propriété dans un dataset:
zfs allow cindys quota,reservation users/home
zfs allow users/home
Supprimer les permissions déléguer dans un dataset:
zfs unallow staff snapshot tank/users
zfs allow tank/users
^
16 janvier 2015

htmlpdflatexmanmd




zpool

zpool

Configure des pools de stockage ZFS

Description

   Un pool de stockage est une collection de périphériques qui fournissent un stockage physique et une réplication de données pour les datasets ZFS. Tous les datasets dans un pool de stockage partagent le même espace.

   Un périphérique virtuel (vdev) décrit un simple périphérique ou une collection de périphériques organisés en accord avec certaines caractéristiques de performances et panne. Les périphériques virtuels suivants sont supportés:

disk Un périphérique block, typiquement localisé sous /dev/dsk. ZFS peut utiliser individuellement des slices ou des partitions, mais le mode d'opération recommandé est d'utiliser des disques entiers. Un dique peut être spécifié par un chemin complet, ou il peut être un nom cour ( la partie relative à /dev/dsk). Un disque entier peut être spécifié en omettant le slice ou la partition. par exemple, "c0t0d0" est équivalent à "/dev/dsk/c0t0d0s2". En donnant un disque entier, ZFS lablel automatiquement le disque, si nécessaire.
file Un fichier régulier. L'utilisation de disques régulier est fortement découragé. Il est conçu principalement à des fins expérimentaux.
mirror Un mirroir de 2 ou plusieurs disques. Les données sont répliquées de manière identique dans tous les composant d'un mirroir. Un mirroir avec N disques et taille X peut maintenir X octets et peut résister à N-1 panne de périphériques avant que l'intégrité des données soient compromise.
raidz
raidz1
raidz2
raidz3 Une variation du RAID-5 qui permet une meilleur distribution de la parité et élimine les trous d'écriture des RAID-5 (dans lequel les données et la parité deviennent inconsistants avec une coupure de courant). Les données et la parité sont placés dans tous les disques dans un groupe raidz.
Un groupe raidz peut avoir une parité simple, double ou triple, signifiant que le groupe raidz peut survivre à 1, 2, ou 3 erreurs, respectivement, sans perte de données. raidz est un alias de raidz1.
Un group raidz avec N disques de taille X avec P disques de parité peut maintenir approximativement (N-P)*X octets et peut résister à P pannes de périphériques avec que l'intégrité des données soit compromise. Le nombre minimum de périphériques dans un group raidz est un de plus que le nombre de disque de parité. Le nombre recommandé est entre 3 et 9 pour améliorer les performances.
spare Un pseudo vdev spécial qui conserve la trace de disques de rechange à chaud pour un pool.
log Un périphérique de log séparé. Si plus d'un périphérique de log sont spécifiés, les écritures sont load-balancés entre les disques. Les périphériques de log peuvent être en mirroir. Cependant, les vdev raidz ne sont pas supportés.
cache Un périphérique utilisé comme cache de données. Un périphérique cache ne peut pas être configuré comme mirroir ou groupe raidz.

   Les périphériques virtuels ne peuvent pas être imbriqués, donc un périphérique mirroir ou raidz ne peut contenir que les fichiers et des disques. Les mirroirs de mirroirs ou d'autres combinaisons ne sont pas permises.

   Un pool peut avoir n'importe quel nombre de périphériques virtuels en haut de la configuration ( "root vdevs" ). Les données sont dynamiquement distribués dans tous les périphériques de haut niveau pour load-balancer dans les périphériques. Comme avec les nouveaux périphériques virtuels, ZFS place automatiquement les données dans les nouveaux périphériques disponibles.

   Les périphériques virtuels sont spécifié une à la fois dans la ligne de commande, séparés par des espaces blancs. Les mots clé "mirror" et "raidz" sont utilisé pour distinguer où un groupe se termine et où un autre commence.

Par exemple, pour créer 2 vdev root, chaque en mirroir de 2 disques:
zpool create mypool mirror c0t0d0 c0t1d0 mirror c1t0d0 c1t1d0

Erreur disque et récupération

   ZFS supporte plusieurs mécanismes pour gérer les erreurs disques et la corruption de données. Toutes les métadonnées et les données sont hashé, et ZFS répare automatiquement les mauvaises données depuis une bonne copie quand une corruption est détectée.

   Pour pouvoir utiliser ces fonctionnalités, un pool doit utiliser une certaine forme de redondance, en utilisant soit des groupes mirroir ou raidz. Bien que ZFS supporte les configuration non-redondantes, où chaque vdev root est simplement un disque ou un fichier, c'est fortement découragé.

   Le status de santé d'un pool est décris par un de ces 3 états: online, degraded, faulted. Un pool online a tous ses périphériques fonctionnant normalement. Un pool dégradé est un pool dans lequel un ou plusieurs périphériques sont en échec, mais les données continuent d'être disponibles grâce à la configuration de la redondance. Un pool faulted est un pool qui a une corruption de méta-données, un ou plusieurs périphériques en erreur, et des réplicas insuffisant pour continuer à fonctionner.

   La santé du vdev top-level, tel un mirror ou un raidz, est potentiellement impacté par l'état de ses vdev associés, ou ses périphériques. Un vdev top-level ou un composant périphérique est dans un de ces états:

DEGRADED

- Un ou plusieurs vdev top-level sont en état dégradés à cause d'un ou plusieurs composants périphérique offline. Des réplicas suffisants existent pour continuer à fonctionner.
- Un ou plusieurs composants périphérique et est en état dégradé ou faulted, mais des réplicas suffisants existent pour continuer à fonctionner. Les conditions sous-jacentes sont les suivantes:

        - Le nombre d'erreurs de checksums excède le niveau acceptable et le périphérique est dégradé en indication que quelque chose ne va pas. ZFS continue d'utiliser le périphérique si nécessaire.
        - Le nombre d'erreur E/S excède le niveau acceptable. Le périphérique ne pourrait pas être marqué en faulted parce qu'il y'a suffisamment de réplicas pour continuer à fonctionner.

FAULTED

- Un ou plusieurs vdev top-level sont à l'état faulted à cause d'un ou plusieurs composants périphérique offline. Les réplicas existant sont insuffisant pour continuer à fonctionner.
- Un ou plusieurs composant périphérique sont à l'état faulted, et des réplicas existant sont insuffisant pour continuer à fonctionner. Les conditions sous-jacentes sont les suivantes:

        - Le périphérique peut être ouvert, mais son contenu ne matche par les valeurs attendues
        - Le nombre d'erreur d'E/S excède un niveau acceptable et le périphérique est faulted pour empêcher son utilisation.

OFFLINE

- Le périphérique a été explicitement mis offline par la commande zpool offline

ONLINE

- Le périphérique est online et fonctionnel

REMOVED

- Le périphérique a été physiquement supprimé alors que le système fonctionnait. La détection de la suppression de disque est dépendant du hardware et peut ne pas être supporté par toutes les plateformes.

UNAVAIL

- Le périphérique ne peut pas être ouvert. Si un pool est importé quand un périphérique est indisponible, le périphérique sera identifié par un identifiant unique au lieu de son chemin vu que le chemin n'est jamais correct.

   Si un périphérique est supprimé puis ré-attaché plus tard dans le système, ZFS tente de placer le périphérique automatiquement en online. La détection de périphérique attaché est dépendant du hardware et peut ne pas être supporté par toutes les plateformes.

Hot Spares

   ZFS permet aux périphériques d'être associés avec des pools en hot spare avec la commande zpool add et supprimés avec la commande zpool remove. Une fois un spare initialisé, un nouveau vdev spae est créé dans la configuration qui va rester jusqu'à ce que le périphérique original soit remplacé. À ce point, le hot spare deviendra disponible si un autre périphérique échoue.

   Si un pool a un spare partagé qui est actuellement utilisé, le pool ne peut pas être exporté vu que d'autre pools peuvent utiliser ce spare partagé.

   Tout spare en progression de remplacement peut être annulé en détachant le hot spare. Si le périphérique faulted est détaché, le hot spare assume sa place dans la configuration, et est supprimé de la liste de spare pour tous les pools actifs.

   Les spares ne peuvent pas replacer les périphériques logs

Intent Log

   ZFS Intent Log (ZIL) satisfait les pré-requis POSIX pour les transactions synchrones. Actuellement, les bases de données nécessitent que leur transactions soient sur des périphériques de stockage stables en retournant depuis un appel système. NFS et d'autres applications peuvent également utilis fsync() pour s'assurer de la stabilité des données. Par défaut, le intent log est alloué dans les blocks du pool principal. Cependant, il peut être possible d'obtenir de meilleurs performances en utilisant des périphériques séparés pou les logs tel que NVRAM ou un disque dédié.

Par exemple:
zpool create pool c0d0 c1d0 log c2d0

   Plusieurs périphériques de log peuvent également être spécifiés, et ils peuvent être mirrorés. Les périphériques de log peuvent être ajoutés, remplacés, attachés, détachés, et importés/exportés comme partie d'un grand pool. Les logs mirrorés peuvent être supprimés en spécifiant le mirror top-level pour les logs.

Cache Devices

   Des périphériques peuvent être ajoutés à un pool de stockage comme périphérique de cache. Ces périphériques fournissent une couche additionnelle de cache entre la mémoire principale et le disque. Pour des opérations de lecture intensive, utiliser des périphériques cache fournis les meilleurs performances.

Pour créer un pool avec des périphériques cache, spécifier un vdev cache avec des périphériques. par exemple:
zpool create pool c0d0 c1d0 cache c2d0 c3d0

   Les périphériques cache ne peuvent pas être mirrorés dans une configuration raidz. Si une erreur de lecture est rencontrée dans un périphérique cache, cette lecture est refaite dans le pool originale, qui peut faire partie d'une configuration mirror ou raidz. Le contenu des périphériques cache est considéré volatile.

Processus

   Chaque pool importé a un processus associé, nommé zpool-‹poolname›, les threads dans ce processus sont les threads de traitement E/S du pool, qui manipulent la compression, checsums, et d'autre tâches pour toutes les opération d'E/S associées avec le pool. Ce processus existe pour fournir un visibilité dans l'utilisation CPU. L'existence de ce processus est une interface instable.

Propriétés

   Chaque pool a de nombreuses propriétés. Certaines propriétés sont des statistiques lecture-seule alors que d'autre sont configurables. Les propriétés lecture-seules sont:

alloc Quantité d'espace de stockage dans le pool qui a été physiquement alloué.
capacity % de l'espace du pool utilisé.
deduplication Ration de déduplication spécifié pour un pool, exprimé comme multiplicateur. ex: 1.76 indique que 1.76 unité de donnée sont stockés mais seulement 1 unité de l'espace disque est consommé.
free Nombre de blocks dans le pool qui ne sont pas alloués.
guid Identifiant unique pour le pool
healt Santé actuel du pool.
size Taille totale du pool de stockage

   Ces propriétés d'utilisation de l'espace reportent l'espace physique actuellement disponible dans le pool. l'espace physique peut être différent de la taille totale d'espace que tout datasets peut utiliser actuellement. La quantité d'espace utilisé dans une configuration raidz dépend de ses caractéristiques. En plus, ZFS réserve de l'espace en interne que la commande zfs prend en compte, mais pas la commande zpool. Pour les pools non-pleins d'une taille raisonnable, ces effets devraient être invisibles. pour les petits pools, ou les pools qui sont presques pleins, ces écart peuvent devenir plus perceptibles.

   Les propriétés suivantes peuvent être définis à la création:

ashift Exposant de taille de secteur du pool, en puissance de 2. Les opérations I/O seront alignés à cette taille. Additionnellement La taille d'écriture disque minimum sera définis à la taille spécifiée, ce qui représente un compromis espace/performance. Le cas typique pour définir cette propriété est quand les performances sont importante et que les disques utilisent des secteurs 4KiB mais reportent des secteurs de 512 octets à l'OS pour des raisons de compatibilité; dans ce cas, définis ashift=12 ( 1‹㙘 == 4096 ). Vu que les grands disques ont des secteurs 4K depuis 2011, ZFS utilise ashift=12 par défaut pour tous les disques supérieurs à 512Go. Pour des raisons de performances, la taille de secteur devrait être égal ou supérieur à la taille de secteur.

   Les propriétés suivantes peuvent être définis à la création et à l'import:

altroot Répertoire root alternatif. Si définis, ce répertoire est ajouté à tout point de montage dans le pool. Cela peut être utilisé en examinant un pool inconnu où les points de montage ne peuvent pas être validés, ou dans un environnement de boot alternatif, où les chemins typiques ne sont pas valides. altroot n'est pas une propriété persistante. Elle est valide seulement quand le système est up.

   Les propriétés suivantes peuvent être définis à la création, à l'import et avec la command zpool set:

autoexpand=on | off Contrôle l'expansion automatique du pool quand le LUN sous-jacent grandis. À on, le pool sera redimmensionné en accord avec la taille du périphérique étendu. Si le périphérique fait partie d'un mirror ou un raidz, tous les périphériques dans le groupe doivent être étendus avant que le nouvel espace soit disponible dans le pool. (défaut: off).
autoreplace=on | off Contrôle le remplacement automatique du périphérique. À off, le remplacement de disque doit être initialisé par l'administrateur en utilisant zpool replace. à on, tout nouveau périphérique trouvé dans le même emplacement physique que l'ancien disque appartenant au pool est remplacé et formaté automatiquement. (défaut: off)
bootfs=pool/dataset Identifie le dataset bootable par défaut pour le pool root. Cette propriété est prévue pour être définie principalement par les programmes d'installation et de mise à jours.
cachefile=path | none Contrôle l'emplacement où la configuration du pool est cachée. Découvrir tous les pools au démarrage du système nécessite une copie cachée des données de configuration stockée dans le système de fichier racine. Tous les pools dans ce cache sont automatiquement importés au boot du système. Certains environnements, tels que l'installation et le clustering, nécessitent de cacher cette information dans un emplacement différent et ces pools ne sont pas automatiquement importés. Définir cette propriété met en cache la configuration du pool dans un emplacement différent et peut être importé ultérieurement avec zpool import -c. Définir la valeur spécial none créé un pool temporaire qui n'est jamais cacé, et la valeur spéciale "" utilise l'emplacement par défaut. Pluiseurs pools peuvent partager le même fichier de cache, mais le kernel détruis et recrée ce fichier quand les pools sont ajoutés ou recréés. quand le dernier poor utilisant cachefile est exporté ou supprimé, ce fichier est supprimé.
delegation=on | off Contrôle si un utilisateur non-privilégié à accès basé sur les permissions de dataset définis dans le dataset.
failmode=wait | continue | panic Contrôle le comportement du système dans l'éventualité d'une erreur catastrophique du pool. Cette condition est typiquement un résultat d'un perte de connectivité aux disques sous-jacents, ou une erreur de tous les disques dans le pool. Le comportement est déterminé comme suit:

        wait Bloque les accès E/S au pool jusqu'à ce que la connectivité au disque soit récupéré et que les erreurs aient été validés. Un pool reste en wait jusqu'à ce que le problème du périphérique soit résolu. C'est le mode par défaut.
        continue Retourne EIO à toute nouvelle demande d'écriture mais permet de lire tous périphérique en cour de fonctionnement.
        panic Affiche un message à la console et génère un crash dump système.

listsnaps=on | off Contrôle si les informations sur les snapshots associés avec ce pool sont affichés quand zfs list est lancé sans l'option -t. ( défaut: off ).
version=version Version courante du pool. Peut être augmenté, mais pas diminué. La méthode préférée pour mettre à jours les pools est avec la commande zpool upgrade. Cette propriété peut être tout nombre entre 1 et la version courante reportée par zpool ugrade -v.

Sous-commandes

   Toutes les sous-commandes qui modifient l'état sont loggés de manière persistante dans le pool dans leur forme original.

zpool add [-fn] [-o property=value] pool vdev ... Ajoute les périphériques virtuel spécifiés dans le pool donné.

        -f Force l'utilisation de vdev, même s'il apparaît en utilisation ou spécifie un conflit au niveau de la réplication.
         -n Affiche la configuration qui serai utilisée sans ajouter le vdev.
        -o property=value Définis les propriétés du pool donné (ashift). N'ajoute pas de disque qui est actuellement configuré comme périphérique quorum à un zpool. Une fois un disque dans le pool, ce disque peut être configuré comme périphérique quorum

zpool attach [-f] [-o property=value] pool device new_device Attache un nouveau périphérique à un zpool existant. Le périphérique existant ne peut pas faire partie d'une configuration raidz. Si device ne fait pas partie actuellement d'une configuration mirror, device se transforme automatiquement en mirror 2-way de device et new_device. Si device fait partie d'un mirror 2-way, attache new_device et créé un mirror 3-way, et ainsi de suite.

        -f Force l'utilisation de new_device, même s'il apparaît en cours d'utilisation.
        -o property=value Définie les propriété du pool donné (ashift).

zpool clear [-F [-n]] pool [device] ... Efface les erreurs disques dans un pool. Si aucun argument n'est spécifié, toutes les erreurs périphériques seront effacés. Si un ou plusieurs périphériques sont spécifiés, n'efface les erreurs que de ces périphériques.

        -F Initie le mode récupération pour un pool inouvrable. Tente d'annuler les dernières transactions dans le pool pour le retourner à un état normal. Tous les pools endommagé ne peuvent pas être récupérés avec cette option.
         -n Utilisé en combinaison avec -F. Vérifie si les transactions annulées renderaient le pool ouvrable, mais n'annule rien.

zpool create [-fn] [-o property=value] ... [-O file-system-property=value] ... [-m mountpoint] [-R root] pool vdev ... Créé un pool contenant les périphériques virtuels spécifié dans la ligne de commande. Le nom du pool doit commencer avec une lettre, et peut contenir des caractères alphanumériques, "_", "-" et ".". Les noms de pool mirror, raidz, spare et log sont réservés, comme les noms commençant par c[0-9]. La commande vérifie que chaque périphérique est accessible et non utilisés.
La commande vérifie également que la stratégie de réplication pour le pool est consistante. Une tentative de combiner des stockage redondant et non-redondants dans un seul pool, ou de mixer des disques et des fichier, cause une erreur sauf si -f est spécifié. L'utilisation de disques de taille différentes dans un simple raidz ou mirror est aussi marqué en erreur sauf si -f est spécifié.
Le point de montage par défaut est /‹pool›. Le point de montage ne doit pas exister ou doit être vide.

        -f Force l'utilisation des vdev, même s'ils apparaissent utilisé ou en conflit de niveau de réplication.
         -n Affiche la configuration qui serait utilisée sans créer le pool.
        -o property=value [-o property=value] ... Définis une propriété du pool
        -O file-system-property=value
        [-O file-system-property=value] ... Définis des propriétés de système de fichier dans le système de fichier root du pool.
        -R root Équivalent à "-o cachefile=none,altroot=root"
        -m mountpoint Définis le point de montage pour de dataset root. Le point de montage doit être un chemin absolu, legacy, ou none.

zpool destroy [-f] pool Détruit le pool donné, libérant les périphériques pour d'autres utilisations. Cette commande tente de démonter tout dataset actif avant de détruire le pool.

        -f Force un dataset actif contenu dans le pool à être démonté.

zpool detach pool device Détache device d'un mirroir. Cette opération est refusé s'il n'y a pas d'autre replica valide.
zpool export [-f] pool ... Exporte les pools donnés du système. Tous les périphériques sont marqués comme exporté, mais sont considérés en utilisation par d'autre sous-systèmes. Les périphériques peuvent être déplacés entre les systèmes et importés tant que le nombre de périphériques suffisant sont disponible.
Avant d'exporter le pool, tous les datasets dans le pool sont démontés. Un pool ne peut pas être exporté s'il a un spare partagé qui est actuellement utilisé. Pour que les pools soient portables, vous devez donner à zpool des disques entiers, pas seulement les slices, pour que zfs puisse labeliser les disques avec des labels EFI portables.

        -f Force à démonter les datasets.

zpool get "all" | property[,...] pool ... Récupère la liste donnée de propriété pour les pools spécifiés. Ces propriétés sont affichés avec les champs suivant:

        name Nom du pool
        property nom de la propriété
        value valeur de la propriété
        source Source de la propriété.

zpool history [-il] [pool] ... Affiche l'historique des commandes des pools spécifiés.

        -i Affiche les évènement ZFS loggé en interne en plus des évènements initiés par l'utilisateur.
        -l Affiche les logs au format long

zpool import [-d dir | -c cachefile] [-D] Liste les pool disponible à l'import. Si l'option -d n'est pas spécifié, cette commande recherche les périphériques dans /dev/dsk. Si le périphérique apparaît comme faisant partie d'un pool exporté, cette commande affiche des informations sur le pool. Les pools détruits, les pools qui ont été précédemment détruis avec zpool destroy, ne sont pas listés sauf si -D est spécifié.

        -c cachefile Lit la configuration depuis le cachefile donné qui a été créé avec la propriété cachefile.
        -d dir Recherche les périphériques ou fichiers dans dir. Peut être spécifié plusieurs fois.
        -D Liste les pools détruis uniquement.

zpool import [-o mntopts] [ -o property=value] ... [-d dir | -c cachefile] [-D] [-f] [-R root] [-F [-n]] -a Importe tous les pools trouvés dans les répertoirs de recherche. Identiquement à la commande précédante, excepté que tous les pools avec un nombre suffisant de périphériques sont importés. Les pools détruis, les pools qui ont été précédemment détruis par zpool destroy, ne sont pas importés sauf si -D est spécifié.

        -o mntopts Liste séparée par des ',' d'options de montages à utiliser en montant les datasets dans le pool.
        -o property=value Définis les propriétés spécifiées dans le pool importé.
        -c cachefile Lit la configuration depuis le cachefile donné qui a été créé avec la propriété cachefile.
        -d dir Recherche les périphériques ou les fichiers dans dir. Peut être spécifié plusieurs fois. Incompatible avec -c
        -D Importe les pools détruis uniquement. -f est requis
        -f Force l'import, même si le pool apparaît potentiellement actif.
        -F Mode récupération pour un pool non-importable. Tente de retourner le pool à un état importable en annulant les dernière transactions
        -a Recherche et importe tous les pools trouvés
        -R root Définis la propriété cachefile à none, et altroot à root.
         -n Utilisé avec -F. Détermine si un pool non-importable peut être importable, mais ne tente pas la récupération.

zpool import [-o mntopts] [ -o property=value] ... [-d dir | -c cachefile] [-D] [-f] [-R root] [-F [-n]] pool | id [newpool] Import un pool spécifique. Un pool peut être identifié par son nom ou l'identifiant numérique. Si newpool est spécifié, le pool est importé en utilisant le nom newpool. Sinon, il est importé avec le même nom que son nom exporté.
Si un périphérique est supprimé de son système sans utiliser zpool export avant, le périphérique apparaît comme potentiellement actif. Il ne peut pas être déterminé si c'était un export échoué, ou si le périphérique est vraiment en utilisation dans un autre hôte. Pour importer un pool dans cet état, l'option -f est requise.

        -o mntopts Liste séparée par des ',' d'options de montages à utiliser en montant les datasets dans le pool
        -o property=value Définis les propriétés spécifiées dans le pool importé.
        -c cachefile Lit la configuration depuis le cachefile donné qui a été créé avec la propriété cachefile.
        -d dir Recherche les périphériques ou les fichiers dans dir. Peut être spécifié plusieurs fois. Incompatible avec -c
        -D Importe les pools détruis uniquement. -f est requis
        -f Force l'import, même si le pool apparaît potentiellement actif.
        -F Mode récupération pour un pool non-importable. Tente de retourner le pool à un état importable en annulant les dernière transactions
        -a Recherche et importe tous les pools trouvés
        -R root Définis la propriété cachefile à none, et altroot à root.
         -n Utilisé avec -F. Détermine si un pool non-importable peut être importable, mais ne tente pas la récupération.

zpool iostat [-T u | d] [-v] [pool] ... [interval[count]] Affiche des statistiques d'E/S pour les pool donnés. En donnant un interval, rafraîchis toutes les interval secondes. Si aucun pool n'est spécifié, affiche pour tous les pools dans le système. Si count est spécifié, la commande se termine après count reports.

        -T u | d Affiche un horodatage.
        -v Statistiques plus complètes.

zpool list [-H] [-o props[,...]] [pool] ... Liste les pools donnés avec un status de santé et d'utilisation de l'espace. Sans argument, tous les pool dans le système sont listés.

        -H Mode scripté. N'affiche pas les headers, et sépare les champs pas une tabulation.
        -o props Liste séparée par des ',' de propriétés à afficher. (name, size, allocated, free, capacity, health, altroot).

zpool offline [-t] pool device ... Place les disques spécifié offline. Cette commande n'est pas applicable pour les caches et spares.

        -t Temporaire. Au reboot, le disque sera replacé à son état précédent.

zpool online [-e] pool device... Place un disque online. Cette commande n'est pas applicable pour les caches et spares.

         -e  Étend le périphérique pour utiliser tous l'espace disque disponible. Si le disque fait partie d'un mirror ou d'un raidz, tous les périphériques doivent être étendus avec que l'espace soit disponible dans le pool.

zpool remove pool device ... Supprime un périphérique du pool. Cette commande supporte seulement la suppression des hot spare, cache, et log.
zpool replace [-f] pool old_device [new_device] Remplace old_device avec new_device. C'est équivalent à attacher new_device, et détacher old_device. La taille de new_device doit être supérieur ou égal à la taille minimum de tous les périphériques dans un mirror ou raidz.
new_device est requis si le pool n'est pas redondant. Si new_device n'est pas spécifié, son défaut est old_device. Cette forme de remplacement est utile après qu'un disque existant ait crashé et a été physiquement remplacé. Dans ce cas, le nouveau disque peut avoir le même /dev/dsk que l'ancien périphérique, même s'il a une taille différente.

        -f Force l'utilisation de new_device, même s'il apparaît en utilisation.

zpool scrub [-s] pool ... Commence un scrub. Le scrub examine toutes les données dans les pools spécifiés pour vérifier qu'ils checksums correctement. Pour les périphériques répliqués, ZFS répare automatiquement tout dommage découvert durant le scrub. zpool status reporte la progression du scrub et affiche des informations sur son avancement.
Le scrubbing et le resilvering sont des opérations très similaires. La différence est que le resilvering examine seulement les données que ZFS sait être hors date (par exemple, en attachant un nouveau disque à un mirroir ou en replaçant un périphérique existantè), alors que le scrubbing examine toutes les données pour découvrir des erreurs dûs à des erreurs matériels ou disque.
Vu que le scrubbing et le resilvering sont des opération d'E/S intensifs, ZFS permet seulement un à la fois. Si un scrub est déjà en progression, zpool scrub se termine et recommence un nouveau scrub. Si un resilver est un progression, ZFS ne permet pas de démarrer un scrub.

        -s Stop le scrubbing

zpool set property=value pool Définis une propriété au pool spécifié.
zpool split [-R altroot] [-n] [-o mntopts] [-o property=value] pool newpool [device ...] Coupe un disque de chaque vdev top-level mirroré en un pool et crée un nouveau pool avec les disques splittés. Le pool original doit être fait d'un ou plusieurs mirroirs et ne doit pas être dans un processus de resilvering. Cette commande choisi le dernier périphérique dans chaque vdev mirror sauf spécification dans la ligne de commande.
En utilisant un argument device, split inclus les périphériques spécifiés dans un nouveau pool, si des périphériques restent non précisés, assigne le dernier périphérique de chaque mirroir vdev à ce pool, comme il le fait normallement. Si vour n'êtes pas certain de la sortie de spécit, utiliser -n pour s'assure que votre command aura l'effet attendus.

        -R altroot Import automatiquement le pool nouvellement créé avec le split, en utilisant le paramètre altroot spécifié.
         -n Affiche ce qu'il va faire, mais ne fait rien
        -o property=value Définis les propriétés spécifiées dans le pool importé.

zpool status [-xv] [pool] ... Affiche des status détaillés sur l'état de santé des pools donnés. Si aucun pool n'est spécifié, alors le status de chaque pool dans le système est affiché. Si un scrub ou un resilver est en cours, cette commande reporte le pourcentage fait et le temps estimé.

        -x Affiche seulement le status des pools qui ont des erreurs ou sont indisponible.
        -v Affiche plus d'information sur les erreurs.

zpool upgrade Affichue tous les pools formattés en utilisant une version ZFS différente. Les anciennes version peuvent continuer à être utilisée mais certaines fonctionnalité ne seront pas disponible. Ce pools peuvent être upgradé en utilisant zpool upgrade -a. Les pools qui sont formatés avec une version plus récente sont également affichés, bien que ces pool sont inaccessible au système.
zpool upgrade -v Affiche les versions ZFS supportés par le logiciel courant. Les versions ZFS courantes et tous les versions précédentes supportées sont affichées.
zpool upgrade [-V version] -a | pool ... Upgrade à a dernière version. Une fois fait le pool ne sera plus accessible aux système fonctionnant avec des versions plus anciennes.

        -a Upgrade tous les pools
        -V version Upgrade à la version spéifiée.

Exemples

Créer un Pool RAID-Z de 6 disques:
zpool create tank raidz c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0
Créer un pool avec 2 mirroirs de 2 disques chacuns.
zpool create tank mirror c0t0d0 c0t1d0 mirror c0t2d0 c0t3d0
Créer un pool en utilisant des slices:
zpool create tank /dev/dsk/c0t0d0s1 c0t1d0s4
Créer un pool en utilisant des fichiers:
zpool create tank /path/to/file/a /path/to/file/b
ajouter un mirroir à un pool:
zpool add tank mirror c1t0d0 c1t1d0
Lister les pools disponibles:
zpool list
Affiche toutes les propriété d'un pool:
zpool get all pool
Détruit un pool
zpool destroy -f tank
Exporte un pool:
zpool export tank
Importe un pool:
zpool import
zpool import tank
Upgrader les pools à la dernière version:
zpool upgrade -a
Gérer un spare:
zpool create tank mirror c0t0d0 c0t1d0 spare c0t2d0
Si un des disques échoue, le pool sera réduit à un état dégradé. le disque défectueux peut être remplacé avec:
zpool replace tank c0t0d0 c0t3d0
Une fois les donnée resilvered, le spare est automatiquement supprimé et de nouveau disponible. Le spare peut être supprimé de manière permanente avec:
zpool remove tank c0t2d0
Créer un pool avec les logs séparés:
zpool create pool mirror c0d0 c1d0 mirror c2d0 c3d0 log mirror c4d0 c5d0
Ajouter des disques cache à un pool:
zpool add pool cache c2d0 c3d0
Une fois ajoutés, les disques cache se remplissent avec le contenu de la mémoire principale. En fonction de la taille des disques, cela peut prendre des heures pour les remplir. La capacité et les lectures peuvent être supervisés avec iostat:
zpool iostat -v pool 5
Supprimer un périphérique log:
zpool remove tank mirror-2
récupérer un pool en faulted, récupérer un pool cache:
zpool clear -F data
sinon utiliser:
zpool import -F data

Codes de sortie

0 succès
1 Une erreur s'est produite
2 Options de ligne de commande invalide.

attributs

attribute type_______-_attribute value
Availability_________-____SUNWzfsu
Interface Stability _-Committed

^
16 janvier 2015

htmlpdflatexmanmd




zfs-fuse

zfs-fuse

Service de système de fichier ZFS

OPTIONS

-p filename --pidfile filename Écris le PID du service dans filename. Ignoré si --no-daemon est passé.
-n, --no-daemon Ne passe pas en tâche de fond.
--no-kstat-mount Ne monte pas kstats dans /zfs-kstat
--disable-block-cache Active les opération disque direct E/S. Désactive complètement les caches de lecture et d'écriture dans le cache de block du kernel.
--disable-page-cache Désactive le cache de page pour les fichiers résidant dans les systèmes de fichiers ZFS. Non recommandés, ralentis les opération.
-a SECONDS --fuse-attr-timeout SECONDS Définis le timeout pour le cache des attributs FUSE dans le kernel ( défaut: 0.0 ). Des valeurs supérieurs boost les performances de 40%
 -e SECONDS --fuse-entry-timeout SECONDS Définis le timeout pour le cache d'attributs FUSE dans le kernel ( défaut: 0.0 ). Des valeurs supérieurs boost les performances de 10000%, mais crées de problèmes de sécurité dans la vérification des permissions de fichier.
--log-uberblocks Logs uberblocks de tous les systèmes de fichiers montés dans syslog
-m MB --max-arc-size MB Force la taille maximum ARC ( en mégaoctets). (de 16 à 16384)
-o OPT... --fuse-mount-options OPT,OPT,OPT... Définis les options de montage FUSE pour tous les systèmes de fichiers.
-u MIN --min-uberblock-txg MIN Saute les uberblocks avec un TXG ‹ MIN en montant les fs
-v MB --vdev-cache-size MB Ajuste la taille du cache vdev. défaut 10.
--zfs-prefetch-disable Désactive le cache prefetch de haut niveau dans zfs. peut consommer jusqu'à 150Mo de ram, voir plus.
--stack-size=size Limite la taille de pile des threads en Kb. Défaut: pas de limite (8Mo pour Linux)
-x --enable-xattr Active le support pour les attributs étendus. Généralement non recommandé parce que cela impacte significativement les performances.

Notes

   Les paramètres passés sur la ligne de commande ont précédence sur ceux fournis dans /etc/zfs/zfsrc.
^
16 janvier 2015

htmlpdflatexmanmd




zfsrc

zfsrc

Fichier de configuration pour zfs-fuse

vdev-cache-size Ajuste la taille du cache vdev. défaut 10.
max-arc-size Force la taille maximum ARC ( en mégaoctets). (de 16 à 16384)
zfs-prefetch-disable Désactive le cache prefetch de haut niveau dans zfs. peut consommer jusqu'à 150Mo de ram, voir plus.
disable-block-cache Active les opération disque direct E/S. Désactive complètement les caches de lecture et d'écriture dans le cache de block du kernel.
disable-page-cache Désactive le cache de page pour les fichiers résidant dans les systèmes de fichiers ZFS. Non recommandés, ralentis les opération.
enable-xattr Active le support pour les attributs étendus. Généralement non recommandé parce que cela impacte significativement les performances.
fuse-attr-timeout Définis le timeout pour le cache des attributs FUSE dans le kernel ( défaut: 0.0 ). Des valeurs supérieurs boost les performances de 40%
fuse-entry-timeout Définis le timeout pour le cache d'attributs FUSE dans le kernel ( défaut: 0.0 ). Des valeurs supérieurs boost les performances de 10000%, mais crées de problèmes de sécurité dans la vérification des permissions de fichier.
fuse-mount-options Définis les options de montage FUSE pour tous les systèmes de fichiers.
stack-size Limite la taille de pile des threads en Kb. Défaut: pas de limite (8Mo pour Linux)

^
16 janvier 2015

htmlpdflatexmanmd




zstreamdump

zstreamdump

Filtre de données dans le flux zfs send

Description

   Lit depuis la sortie de zfs send, et affiche les en-tête et des statistiques.

OPTIONS

-C Supprime la validation des checksums
-v Dump tous les headers, pas seulement les headers de début et de fin.

attributs

attribute type_______-_attribute value
Availability_________-____SUNWzfsu
Interface Stability _-____Uncommited

^
16 janvier 2015

htmlpdflatexmanmd




zdb

zdb

Debugger ZFS

Description

   Cette commande est utilisée pour diagnostiquer les erreurs et autres statistiques. Vu que ZFS est toujours consistant su le disque et s'auto-répare, zdb devrait seulement être lancé sous la direction d'un ingénieur. Sans argument, zdb effectue une vérification de consistance dans le pool et les datasets associés, et reporte tout problème détecté. Les options sont interne à Sun et sont sujets à changement.

Codes de sortie

0 Le pool est consistant
1 Une erreur a été détectée
2 Options de ligne de commande invalides.

attributs

attribute type_______-_attribute value
Availability_________-____SUNWzfsu
Interface Stability _-____Unstable