2017-08-22 6 views
1

J'ai créé une cible basée sur un fichier par dd un fichier et mappée à une cible iSCSI. Il a été fait par l'exemple de hereComment LBA de LUN mappé au fichier image de la cible basée sur un fichier iSCSI

dd if=/dev/zero of=/root/os.img bs=1G count=10 
Target iqn.2010-06.ServerName:desc 
Lun 0 Path=/root/os.img,Type=fileio 

Je peux voir les paquets entre les fenêtres (initiateurs iSCSI) et cible iSCSI de Wireshark.

Ma question est de savoir comment l'initiateur d'adresse iSCSI tente d'accéder (LBA) mappé au fichier image (os.img)? Y aura-t-il des méta-données dans LUN?

Répondre

2

Il n'y a pas de métadonnées supplémentaires. Lorsque vous accédez à l'adresse de bloc logique (LBA) 0 sur votre initiateur, vous accédez au décalage 0 dans le fichier 10G que vous avez créé. Lorsque vous accédez au LBA à 10 Mo dans le LUN, vous accédez au bloc à l'offset 10 Mo dans os.img. Les blocs sont de 512 octets. Pour utiliser le LUN, vous devrez probablement le formater avec un système de fichiers. Le système de fichiers contient des métadonnées telles que les noms de fichiers, les attributs et les blocs qui leur sont mappés. Si vous envisagez de mettre en place des métadonnées de provisionnement léger pour le LUN lui-même, vous en avez de façon indirecte parce que votre LUN est stocké sous forme de fichier (os.img) sur un système de fichiers (/root). Le système de fichiers garde la trace des blocs alloués dans le fichier. Mais, puisque vous l'avez créé en utilisant dd, vous avez déjà alloué tous ses blocs. Vous pouvez éviter cela en créant un fichier clairsemé pour l'unité logique comme ceci:

truncate -s 10G os.img 

(avec la permission Quickly create a large file on a Linux system?)

Mais, autre que ces deux exemples, il n'y a pas de métadonnées qu'accessoirement.