Como expandir um lun iSCSI com targetcli no CentOS7?

1

Eu tenho uma máquina do CentOS 7 com o iSCSI configurado. Veja ls output from targetcli abaixo. Eu quero adicionar disk02 a lun0 para que o cliente iSCSI possa ver um total de 869.16 GB em vez de 392.2 GB

Pergunta: É possível que lun0 use a capacidade combinada de disk0 e disk1 e, em caso afirmativo, como fazer isso com targetcli no CentOS7.

/> 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]
/> 
    
por ams 15.10.2014 / 18:43

1 resposta

2

A criação de um LUN de destino iSCS vincula os objetos de armazenamento definidos anteriormente ao destino e define o número que o dispositivo usará.

Portanto, se você quiser que o LUN ( lun0 ) seja expandido, o objeto de armazenamento subjacente ( disk01 ) precisa ser expandido.

Um método para fazer isso é criar um volume lógico dos dois discos da seguinte maneira (embora isso exija uma interrupção):

Exclua o objeto de armazenamento não utilizado disk02 e crie um volume lógico a partir dele:

/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>

Crie um volume lógico ( iscsi_lv01 ) usando o dispositivo inteiro:

$ 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

Nota:
Claramente, se o dispositivo existente foi formatado e contém dados, este novo volume terá que ser formatado e os dados copiados para ele.

Crie um novo objeto de armazenamento usando o novo volume:

$ 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>

Recriar lun0 usando o novo volume

/> 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>

Exclua o objeto de armazenamento existente disk01 para ser adicionado ao grupo de volumes:

/> 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]

Salve a nova configuração no caso de auto_save_on_exit não estar definido como verdadeiro:

/> 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

Estenda o volume lógico existente com o dispositivo original 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
$

Nota:
Haverá também a etapa adicional de redimensionar o sistema de arquivos, uma vez que disk01 tenha sido adicionado se o volume exigido for formatado.

Observe o novo objeto de armazenamento dimensionado:

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- iscsi_lv01 .................................................. [/dev/iscsi_disk01/iscsi_lv01 (869.1GiB) write-thru activated]
Infelizmente, esse método requer tempo de inatividade enquanto o lun é redimensionado, no entanto, seguir esse método garantirá que ele seja mantido no mínimo.

Referências

Wiki da Targetcli
Guia de destino do iSCSI usando o tgtadm

    
por 24.10.2014 / 14:23