Как LBA LUN сопоставляется с файлом образа цели на основе файлов iSCSI

Я создал цель на основе файла с помощью dd файла и сопоставил ее с целью 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

Я вижу пакеты между окнами (инициатор iSCSI) и целью iSCSI из wirehark.

Мой вопрос заключается в том, как инициатор iSCSI пытается получить доступ к адресу (LBA) сопоставляется с файлом изображения (os.img)? Будут ли в LUN метаданные?


person Schmidt    schedule 22.08.2017    source источник


Ответы (1)


Дополнительных метаданных нет. Когда вы обращаетесь к адресу логического блока (LBA) 0 на своем инициаторе, вы получаете доступ к смещению 0 в том файле 10G, который вы создали. Когда вы получаете доступ к LBA со смещением 10 МБ в LUN, вы получаете доступ к блоку со смещением 10 МБ в os.img. Блоки по 512 байт.

Чтобы использовать LUN, вам, вероятно, потребуется отформатировать его с помощью файловой системы. Файловая система содержит метаданные, такие как имена файлов, атрибуты и блоки, которым они сопоставлены.

Если вы думаете о тонком предоставлении метаданных для самого LUN, у вас есть некоторые обходные пути, потому что ваш LUN хранится в виде файла (os.img) в файловой системе (независимо от того, что содержит /root). Файловая система отслеживает, какие блоки в файле выделены. Но поскольку вы создали его с помощью dd, вы уже выделили все его блоки. Вы можете избежать этого, создав разреженный файл для луны следующим образом:

truncate -s 10G os.img

(любезно предоставлено Быстро создать большой файл в системе Linux?)

Но, кроме этих двух косвенно связанных примеров, метаданных нет.

person Mike Andrews    schedule 23.08.2017