| TGTADM(8) | [FIXME: manual] | TGTADM(8) |
نام (NAME)
tgtadm - ابزار مدیریت SCSI Target در لینوکس
خلاصه دستور (SYNOPSIS)
tgtadm [OPTIONS]... [-C --control-port <port>] [-L --lld <driver>] [-o --op <operation>] [-m --mode <mode>] [-t --tid <id>] [-T --targetname <targetname>] [-y --blocksize <size>] [-Y --device-type <type>] [-l --lun <lun>] [-b --backing-store <path>] [-f --bsoflags {direct|sync}] [-S --bsopts {backing-store opt string}] [-E --bstype <type>] [-I --initiator-address <address>] [-Q --initiator-name <name>] [-n --name <parameter>] [-v --value <value>] [-P --params <param=value[,param=value...]>] [-F --force] [-h --help]
شرح (DESCRIPTION)
دستور tgtadm برای پایش و تغییر همهچیز پیرامون نرمافزار هدف SCSI در لینوکس (Linux SCSI target) شامل هدفها، دیسکها و حجمها به کار میرود.
گزینهها (OPTIONS)
-C, --control-port <port>
-y, --blocksize <size>
مثال:
tgtadm --lld iscsi --mode logicalunit --op new \
--tid <TID> --lun <LUN> \
-b <backing-file> --blocksize=4096
-Y, --device-type <type>
انواع ممکن برای device-type عبارتند از:
disk : شبیهسازی یک دستگاه دیسک
tape : شبیهسازی یک نوارخوان
ssc : مشابه tape
cd : شبیهسازی یک درایو DVD
changer : شبیهسازی یک دستگاه تعویضکننده رسانه (media changer)
pt : نوع عبوردهنده (passthrough) برای ارائهی یک دستگاه /dev/sg
-E, --bstype <type>
انواع ممکن برای backend عبارتند از:
rdwr : استفاده از ورودی/خروجی عادی فایل. این گزینه پیشفرض برای دستگاههای دیسک است
aio : استفاده از ورودی/خروجی ناهمگام (Asynchronous I/O)
rbd : استفاده از RADOS Block Device در فضای ذخیرهسازی توزیعشده Ceph
sg : نوع بکاند ویژه برای دستگاههای عبوردهنده (passthrough)
ssc : نوع بکاند ویژه برای شبیهسازی نوار
--lld <driver> --op new --mode target --tid <id> --targetname <name>
--lld <driver> --op delete --mode target --tid <id>
--lld <driver> --op delete --force --mode target --tid <id>
--lld <driver> --op show --mode target
--lld <driver> --op show --mode target --tid <id>
--lld <driver> --op new --mode logicalunit --tid <id> --lun <lun> --backing-store <path> --bsopts=<backing store options>
مثال: اگر tgt به همراه پشتیبانی از منبع ذخیرهسازی bs_rbd برای تصاویر Ceph RBD کامپایل شده باشد (دستور tgtadm --mode system --op show را برای بررسی مشاهده کنید)، یک هدف با نگاشت تصویر rbd به نام "rbdimage" تنظیم کنید و گزینهها را به bs_rbd ارسال نمایید: tgtadm --lld iscsi --op new --mode logicalunit --tid 1 \ --lun 1 --bstype=rbd --backing-store=rbdimage \ --bsopts="conf=/etc/ceph/ceph.conf;id=tgt"
--lld <driver> --op delete --mode logicalunit --tid <id> --lun <lun>
--lld <driver> --op bind --mode target --tid <id> --initiator-address <address>
--lld <driver> --op bind --mode target --tid <id> --initiator-name <name>
--lld <driver> --op unbind --mode target --tid <id> --initiator-address <address>
--lld <driver> --op unbind --mode target --tid <id> --initiator-name <name>
--lld <driver> --op update --mode target --tid <id> --name=<parameter> --value=<value>
--lld <driver> --op update --mode target --tid <id> --params parameter=value<,...>
--lld <driver> --op update --mode logicalunit --tid <id> --lun <id> --params parameter=value<,...>
--lld <driver> --op start --mode lld
--help
پارامترهای LUN (LUN PARAMETERS)
این پارامترها تنها برای "--mode logicalunit" کاربرد دارند.
vendor_id=<string>
product_id=<string>
product_rev=<string>
مثال:
tgtadm --lld iscsi --mode logicalunit --op update \
--tid <TID> --lun <LUN> \
--params vendor_id=TGTD,product_id=VirtualHD,product_rev=0103
removable=<0|1>
sense_format=<0|1>
online=<0|1>
دستگاهها هنگام ایجاد به طور پیشفرض برخط هستند اما میتوان آنها را با این پارامتر آفلاین کرد. رفتار دستگاههای آفلاین به نوع دستگاه بستگی دارد. یک دستگاه MMC/DVD که آفلاین است گزارش میدهد دیسکی در دستگاه وجود ندارد اما خود واحد MMC/DVD همچنان قابل ارتباط است. تمام انواع دستگاههای دیگر هرگونه عملیات I/O را با کد وضعیت Not Ready رد میکنند.
مثال:
tgtadm --lld iscsi --mode logicalunit --op update \
--tid 1 --lun 1 \
--params removable=1,sense_format=1,online=1
mode_page=<byte-string>
مثالها:
ایجاد صفحه حالت '2'، زیرصفحه 0 و ۱۴ بایت داده.
این صفحه حالت Disconnect-Reconnect است.
tgtadm --mode logicalunit --op update --tid 1 --lun 2 \
--params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0
ایجاد صفحه حالت '10'، زیرصفحه 0 و ۱۰ بایت داده.
این صفحه حالت Control Extension است.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 \
--params mode_page=10:0:10:2:0:0:0:0:0:0:0:2:0
ایجاد صفحه حالت '0x1c'، زیرصفحه 0 و ۱۰ بایت داده.
این صفحه حالت Informational Exceptions Control است.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 \
--params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0
readonly=<0|1>
این پارامتر فقط برای دستگاههای DISK کاربرد دارد.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 \
--params readonly=1
thin_provisioning=<0|1>
این پارامتر فقط برای دستگاههای DISK اعمال میشود.
تخصیص پویا برای LUNهایی که روی سیستمفایلهای دارای پشتیبانی از FALLOC_FL_PUNCH_HOLE قرار دارند کار میکند.
هنگام استفاده از گزینه thin-provisioning همراه با یک دستگاه بلوکی مانند SSD یا ZVOL، دستور SCSI UNMAP ناحیه مورد نظر را از دستگاه بلوکی دور میاندازد (discard).
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 \
--params thin_provisioning=1
rotation_rate=<uint32>
این پارامتر فقط برای دستگاههای DISK اعمال میشود.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 \
--params rotation_rate=0
پارامترهای اختصاصی LUNهای نوع SMC (SMC SPECIFIC LUN PARAMETERS)
این پارامترها تنها برای LUNهایی با نوع "changer" (دستگاه تعویضکننده رسانه برای Jukebox مربوط به DVD یا کتابخانه نوار مجازی VTL) کاربرد دارند.
element_type=<1|2|3|4>
انواع اسلات: 1 -> انتقالدهنده رسانه (بازوی رباتیک / picker arm) 2 -> عنصر ذخیرهسازی (Storage Element) 3 -> عنصر ورود/خروج (Import/Export Element) 4 -> دستگاه انتقال داده (درایو CD، درایو نوار، درایو MO و...)
address=<1-65535>
start_address=<1-65535>,quantity=<1--65535>
sides=<1|2>
clear_slot=<1>
barcode=<string>
volume_tag=<string>
media_home=<string>
برای انتساب یک پرونده تصویر رسانه به اسلات عنصر ذخیرهسازی، مقدار "barcode" را برابر نام پرونده تصویر در پوشه "media_home" قرار دهید.
مثال: نحوه ایجاد یک DVD jukebox با هشت سینی دیسک و دو دیسک خالی DVD-R.
# ایجاد هدف
tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2007-03:virtual-dvd:`hostname`
# ایجاد یک درایو DVD و نامگذاری مناسب آن
# درایو dvd ابتدا بدون پرونده ذخیرهساز پشتیبان شروع میشود، یعنی دیسکی درون آن نیست
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
# نیاز به یک پرونده پشتیبان برای تعویضکننده رسانه داریم
if [ ! -f $HOME/smc ]; then
dd if=/dev/zero of=$HOME/smc bs=1k count=1
fi
# ایجاد دستگاه SMC و نامگذاری مناسب آن
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
# افزودن دستگاههای انتقال داده (۱ درایو)
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=4,start_address=1,quantity=1
# تعیین اینکه DVD فوق (LUN 1) همان دستگاه انتقال داده ایجادشده باشد
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=4,address=1,tid=1,lun=1
# عناصر انتقال رسانه (بازوی رباتیک / picker)
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=1,start_address=16,quantity=1
# تعریف مسیر به رسانههای مجازی
VTL=${HOME}/vtl
mkdir -p ${VTL}
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params media_home=${VTL}
# عناصر ذخیرهسازی - ۸ عدد با شروع از آدرس ۱۰۲۴
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,start_address=1024,quantity=8
# افزودن 'media' به اسلاتهای ۱ و ۲ و خالی گذاشتن ۶ اسلات دیگر
# اسلات ۱
# ایجاد رسانه مجازی خالی و قابل نوشتن DVD-R
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
# اسلات ۲
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
# اجازه اتصال به تمام آغازگرها (ALL) به این هدف
tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address ALL
# نمایش تمام کارهای انجامشده
tgtadm --lld iscsi --mode target --op show
دستگاههای عبوردهنده (PASSTHROUGH DEVICES)
علاوه بر شبیهسازی دستگاهها، TGTD از بهرهگیری از دستگاههای SG موجود روی میزبان و صادر کردن آنها از طریق نوع دستگاه عبوردهنده (passthrough) ویژه پشتیبانی میکند.
--bstype=sg
--device-type=pt
--backing-store=</dev/sg4>
--bsoflags={direct|sync}
مثال: در دسترس قرار دادن /dev/sg4 برای آغازگرهای متصل به TGTD. tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --bstype=sg --device-type=pt --backing-store=/dev/sg4 مثال: باز کردن پرونده پشتیبان با O_SYNC. tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --bsoflags="sync" --backing-store=/data/100m_image.raw
خلاصه هدر و دادهها (HEADER DIGEST AND DATA DIGEST)
خلاصه هدر و دادهها (digest) را میتوان برای هر هدف تنظیم کرد. نرمافزار TGTD از دو حالت پشتیبانی میکند: None و CRC32C. هنگامی که خلاصه روی None تنظیم شود، TGTD توافق میکند که از خلاصه استفاده نشود، و هنگامی که CRC32C تنظیم شود، TGTD اتصال را مجبور به استفاده از خلاصه خواهد کرد.
مشاهده تنظیمات کنونی
این دستور برای مشاهده تنظیمات کنونی خلاصه هدر/داده استفاده میشود.
tgtadm --op show --mode target --tid 1 ... HeaderDigest=None DataDigest=None ...
تنظیم دایجست
تنظیم خلاصه هدر روی CRC32C: tgtadm --op update --mode target --tid 1 -n HeaderDigest -v CRC32C تنظیم خلاصه داده روی None: tgtadm --op update --mode target --tid 1 -n DataDigest -v None
احراز هویت با CHAP (CHAP AUTHENTICATION)
احراز هویت CHAP برای الزام به احراز هویت پیش از ورود آغازگر و دسترسی به دستگاهها پشتیبانی میشود.
احراز هویت فاز اصلی CHAP در سطح هدف تنظیم میشود. برای تنظیم احراز هویت CHAP، ابتدا باید یک حساب کاربری و گذرواژه مربوطه را ایجاد کنیم و سپس حساب را به یک یا چند هدف متصل (bind) نماییم.
تنظیم CHAP روی یک هدف
این دو دستور یک حساب کاربری ایجاد کرده و آن را به هدف ۱ متصل میکنند.
tgtadm --lld iscsi --op new --mode account --user ronnie --password password tgtadm --lld iscsi --op bind --mode account --tid 1 --user ronnie
فهرست کردن تمام حسابها
این دستور برای فهرست کردن تمام حسابهای ایجادشده به کار میرود.
tgtadm --lld iscsi --op show --mode account
Account list:
ronnie
بررسی نیاز به احراز هویت در یک هدف
هنگام فهرست کردن هدفها، هر هدفی که احراز هویت روی آن فعال باشد شامل فهرستی از تمام حسابهای متصل به آن هدف خواهد بود.
tgtadm --lld iscsi --op show --mode target
Target 1: iqn.ronnie.test
...
Account information:
ronnie
...
کاوشگرهای NOP-OUT (NOP-OUT PROBES)
نرمافزار TGTD میتواند کاوشگرهای NOP-OUT را برای آغازگرهای متصل ارسال کند تا زمان قطع شدن اتصال آغازگر را تشخیص داده و سپس بهطور خودکار اتصال TCP را پاکسازی و قطع کند. این مقدار را میتوان به عنوان یک پیشفرض سراسری از خط فرمان tgtd تنظیم کرد یا میتوان برای هدفهای جداگانه با استفاده از دستور tgtadm تنظیم نمود.
بررسی تنظیمات جاری NOP-OUT
دستور tgtadm برای مشاهده وضعیت کنونی ارسال کاوشگرهای NOP-OUT به آغازگرهای متصل به کار میرود.
اگر هدف طوری پیکربندی شده باشد که کاوشگرهای NOP-OUT ارسال کند، این به صورت دو خط پارامتر در خروجی مشخصات هدف ظاهر خواهد شد. اگر هدف برای ارسال NOP-OUT پیکربندی نشده باشد، این خطوط اصلاً چاپ نخواهند شد.
tgtadm --lld iscsi --op show --mode target
Target 1: iqn.ronnie.test
System information:
Driver: iscsi
State: ready
Nop interval: 5
Nop count: 5
I_T nexus information:
تنظیم NOP-OUT برای یک هدف
دستور tgtadm برای تغییر تنظیمات NOP-OUT به کار میرود.
tgtadm --op update --mode target --tid 1 -n nop_count -v 5 tgtadm --op update --mode target --tid 1 -n nop_interval -v 5
درگاههای ISCSI (ISCSI PORTALS)
پورتالهای iSCSI را میتوان در زمان اجرا مشاهده، اضافه یا حذف کرد.
فهرست کردن پورتالها
این دستور برای فهرست کردن پورتالهای کنونی iSCSI تعریفشده روی هدف به کار میرود:
tgtadm --lld iscsi --op show --mode portal Portal: 10.1.1.101:3260,1 Portal: 127.0.0.1:3260,1
افزودن پورتال
این دستور برای افزودن یک پورتال به هدف استفاده میشود:
tgtadm --lld iscsi --op new --mode portal --param portal=10.1.1.101:3260
حذف پورتال
این دستور برای حذف یک پورتال از هدف استفاده میشود:
tgtadm --lld iscsi --op delete --mode portal --param portal=10.1.1.101:3260
اتصالات ISCSI (ISCSI CONNECTIONS)
اتصالات iSCSI را میتوان در زمان اجرا مشاهده کرد و به صورت اجباری بست.
فهرست کردن تمام اتصالات فعال برای یک هدف
این دستور برای فهرست کردن تمام اتصالات فعال iSCSI به هدف، همراه با شناسه اتصال، نام آغازگر و نشانی IP آغازگر به کار میرود:
tgtadm --lld iscsi --op show --mode conn --tid 1
Session: 2
Connection: 0
Initiator: iqn.2008-11.org.linux-kvm:
IP Address: 127.0.0.1
بستن یک اتصال موجود
این دستور برای بستن یک اتصال iSCSI به کار میرود. توجه داشته باشید که بستن اجباری اتصالات iSCSI میتواند منجر به از دست رفتن دادهها شود.
tgtadm --lld iscsi --op delete --mode conn --tid 1 --sid 2 --cid 0
وضعیت برخط/آفلاین (ONLINE/OFFLINE STATUS)
واحدهای منطقی (LUNs) در tgtd میتوانند در وضعیت برخط (online) یا آفلاین (offline) باشند. LUNهایی که آفلاین هستند بسته به نوع دستگاه رفتار کمی متفاوتی دارند. دستگاههای آفلاین طوری رفتار میکنند که گویی هیچ رسانهای در دسترس نیست و هر عملیاتی که به رسانه دسترسی پیدا کند با خطای check-condition شکست خواهد خورد.
دستگاهها زمانی که قفلهای "PREVENT ALLOW MEDIUM REMOVAL" روی آنها وجود دارد نمیتوانند روی حالت Offline تنظیم شوند. به همین ترتیب رسانه در دستگاههای Online هنگامی که چنین قفلهایی روی دستگاه وجود دارد نمیتواند با نرمافزار خارج شود (دستور 'eject' ناموفق خواهد بود).
نمایش وضعیت Online/Offline
مشاهده وضعیت برخط/آفلاین یک LUN از طریق دستور tgtd انجام میشود. اگر مقدار "Prevent removal" برابر با "Yes" باشد، نشاندهنده این است که یک برنامه کاربردی قفل "جلوگیری از خروج رسانه" را روی دستگاه نگه داشته است.
tgtadm --lld iscsi --mode target --op show
...
LUN: 2
Type: cd/dvd
SCSI ID: IET 00010002
SCSI SN: beaf12
Size: 3432 MB, Block size: 1
Online: Yes
Removable media: Yes
Prevent removal: Yes
...
تغییر وضعیت LUN به آفلاین
یک LUN با دستور tgtadm به وضعیت آفلاین تغییر داده میشود. هنگامی که دستگاهها روی Offline تنظیم شوند، طوری رفتار میکنند که گویی دیسکی در درایو بارگذاری نشده است.
تغییر وضعیت LUN به آفلاین (نبود دیسک در درایو):
tgtadm --tid 1 --lun 2 --op update --mode logicalunit -P Online=No
پارامترهای ISNS (ISNS PARAMETERS)
پیکربندی iSNS برای یک هدف با استفاده از دستور tgtadm صورت میپذیرد.
iSNSServerIP
مثال: tgtadm --op update --mode sys --name iSNSServerIP --value 192.168.11.133
iSNS
مثال: tgtadm --op update --mode sys --name iSNS --value On
iSNSServerPort
مثال: tgtadm --op update --mode sys --name iSNSServerPort --value 3205
iSNSAccessControl
مثال: tgtadm --op update --mode sys --name iSNSAccessControl --value Off
همچنین ببینید (SEE ALSO)
tgtd(8), tgt-admin(8), tgtimg(8), tgt-setup-lun(8). https://github.com/fujita/tgt
گزارش اشکالات (REPORTING BUGS)
گزارش اشکالات به <stgt@vger.kernel.org>
| 07/09/2026 | [FIXME: source] |