我有一台配置了 iSCSI 的 CentOS 7 電腦。請參閱下面 targetcli 的 ls 輸出。我想將disk02加入lun0,以便iSCSI客戶端可以看到總共869.16GB而不是392.2GB
問題:是否可以讓 lun0 使用 disk0 和 disk1 的總容量,如果可以,如何在 CentOS7 上使用 targetcli 來實現這一點。
/> ls
o- / ....................................................................................................... [...]
o- backstores ............................................................................................ [...]
| o- block ................................................................................ [Storage Objects: 2]
| | o- disk01 ...................................................... [/dev/sdb4 (392.2GiB) write-thru activated]
| | o- disk02 ..................................................... [/dev/sda (476.9GiB) write-thru deactivated]
| o- fileio ............................................................................... [Storage Objects: 0]
| o- pscsi ................................................................................ [Storage Objects: 0]
| o- ramdisk .............................................................................. [Storage Objects: 0]
o- iscsi .......................................................................................... [Targets: 1]
| o- iqn.2014-08.com.exmaple:nuc .................................................................... [TPGs: 1]
| o- tpg1 ................................................................................ [gen-acls, no-auth]
| o- acls ........................................................................................ [ACLs: 0]
| o- luns ........................................................................................ [LUNs: 1]
| | o- lun0 ..................................................................... [block/disk01 (/dev/sdb4)]
| o- portals .................................................................................. [Portals: 1]
| o- 0.0.0.0:3260 ................................................................................... [OK]
o- loopback ....................................................................................... [Targets: 0]
/>
答案1
iSCS 目標 LUN 的建立將先前定義的儲存物件與目標連結起來,並定義裝置將使用哪個編號。
lun0
因此,如果要擴容LUN( ),則disk01
需要擴容底層儲存物件()。
執行此操作的一種方法是從兩個磁碟建立邏輯卷,如下所示(儘管這需要中斷):
刪除未使用的儲存物件disk02
並從中建立邏輯磁碟區:
/backstores/block> delete disk02
Deleted storage object disk02.
/backstores/block> ls
o- block ...................................................................................................... [Storage Objects: 1]
o- disk01 .............................................................................. [/dev/sdb4 (392.2GiB) write-thru activated]
/backstores/block>
iscsi_lv01
使用整個裝置建立邏輯磁碟區 ( ):
$ pvcreate /dev/sda
Physical volume "/dev/sda" successfully created
$ vgcreate iscsi_disk01 /dev/sda
Volume group "iscsi_disk01" successfully created
$ lvcreate iscsi_disk01 -l 100%FREE -n iscsi_lv01
Logical volume "iscsi_lv01" created
筆記:
顯然,如果現有設備已格式化並包含數據,則必須對該新磁碟區進行格式化並將資料複製到其上。
使用新磁碟區建立新儲存物件:
$ targetcli
/backstores/block> create iscsi_lv01 /dev/iscsi_disk01/iscsi_lv01
Created block storage object iscsi_lv01 using /dev/iscsi_disk01/iscsi_lv01.
/backstores/block> ls
o- block ...................................................................................................... [Storage Objects: 2]
o- disk01 .............................................................................. [/dev/sdb4 (392.2GiB) write-thru activated]
o- iscsi_lv01 .................................................... [/dev/iscsi_disk01/iscsi_lv01 (476.9GiB) write-thru deactivated]
/backstores/block>
lun0
使用新磁碟區重新建立
/> cd iscsi/iqn.2014-08.com.exmaple:nuc/tpg1/luns/
/iscsi/iqn.20...nuc/tpg1/luns> delete lun0
Deleted LUN 0.
/iscsi/iqn.20...nuc/tpg1/luns> create /backstores/block/iscsi_lv01
Created LUN 0.
/iscsi/iqn.20...nuc/tpg1/luns> ls
o- luns .................................................................................................................. [LUNs: 1]
o- lun0 ........................................................................ [block/iscsi_lv01 (/dev/iscsi_disk01/iscsi_lv01)]
/iscsi/iqn.20...nuc/tpg1/luns>
刪除現有的儲存對象disk01
,然後將其新增至磁碟區組:
/> cd backstores/block/
/backstores/block> delete disk01
Deleted storage object disk01.
/backstores/block> cd /
/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 1]
| | o- iscsi_lv01 .................................................. [/dev/iscsi_disk01/iscsi_lv01 (476.9GiB) write-thru activated]
| o- fileio ................................................................................................. [Storage Objects: 0]
| o- pscsi .................................................................................................. [Storage Objects: 0]
| o- ramdisk ................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................ [Targets: 1]
| o- iqn.2014-08.com.exmaple:nuc ....................................................................................... [TPGs: 1]
| o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
| o- acls .......................................................................................................... [ACLs: 0]
| o- luns .......................................................................................................... [LUNs: 1]
| | o- lun0 ................................................................ [block/iscsi_lv01 (/dev/iscsi_disk01/iscsi_lv01)]
| o- portals .................................................................................................... [Portals: 1]
| o- 0.0.0.0:3260 ..................................................................................................... [OK]
o- loopback ......................................................................................................... [Targets: 0]
儲存新配置以防萬一auto_save_on_exit
未設定為 true:
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
使用原始設備擴展現有邏輯磁碟區disk01
:
$ pvcreate /dev/sdb4
Physical volume "/dev/sdb4" successfully created
$ vgextend iscsi_disk01 /dev/sdb4
Volume group "iscsi_disk01" successfully extended
$ lvextend -l 100%VG /dev/iscsi_disk01/iscsi_lv01
Extending logical volume iscsi_lv01 to 869.1GiB
Logical volume iscsi_lv01 successfully resized
$
筆記:disk01
如果磁碟區需要格式化,則新增 後還需要調整檔案系統大小的額外步驟。
注意新大小的儲存物件:
/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 1]
| | o- iscsi_lv01 .................................................. [/dev/iscsi_disk01/iscsi_lv01 (869.1GiB) write-thru activated]
遺憾的是,此方法在調整 lun 大小時需要停機時間,但是,遵循此方法將確保停機時間保持在最低限度。
參考