Instalando e Configurando Servidor NAS no Debian Squeeze

E ai galera, aqui eu vou abordar a instalação e configuração de um servidor NAS utilizando o Debian Squeeze.

Uma unidade NAS é essencialmente um servidor conectado a rede, com a funcionalidade única de promover serviços de armazenamento de dados para outros dispositivos da rede. Estas unidades não são desenvolvidas para tarefas computacionais em geral, apesar de tecnicamente ser possível executar outros softwares nelas. Geralmente, as unidades não possuem teclado ou monitor, e são configuradas pela rede, normalmente através de um browser.

Sistemas NAS podem conter mais de um HD, podendo também contar com a tecnologia RAID (Redundant Arrays of Independent Disks), centralizando a responsabilidade de servir os arquivos em uma rede e deste modo liberando recursos de outros servidores desta rede. Os protocolos utilizados pelo NAS são o NFS, popular em sistemas UNIX, ou CIFS/SMB (Common Internet File System/Server Message Block) em ambientes Windows, assim como o tradicional FTP.

O NAS disponibiliza armazenamento e sistema de arquivos, contrastando com o SAN (Storage Area Network), que só realiza armazenamento e deixa ao cliente a tarefa de lidar com o sistema de arquivos. A principal distinção entre os dois sistemas de armazenamento é que o NAS fornece protocolos de arquivo, e o SAN protocolos de camada. Raramente vê-se o sistema SAN sendo utilizado fora de grandes redes de computadores.

Equipamentos NAS estão sendo usados pelo mundo corporativo há algum tempo, porém com a redução dos custos destes dispositivos e com a popularização de redes domésticas, diversos produtos NAS surgiram para o mercado pessoal. Estes dispositivos NAS de uso doméstico são baseados em processadores baratos rodando uma versão embarcada de Linux. Além do baixo custo, estes aparelhos têm baixo consumo de energia e têm uma instalação relativamente simples. Existem alternativas open source para implementações caseiras de NAS, como o FreeNAS, o Openfiler e o NASLite.

O que vou utilizar:

  • Servidor Debian Squeeze
    • IP: 10.101.0.25/24
    • Nome: debian25
    • Disco: /dev/sdb 100 GB
  • Cliente Debian Squeeze
    • IP: 10.101.0.26/24
    • Nome: debian26
    • Localização da configuração do cliente: /etc/iscsi
  • Cliente CentOS 6.3
    • IP: 10.101.0.50/24
    • Nome: centos
    • Localização da configuração do cliente: /var/lib/iscsi

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.

Agora vamos fazer um update dos repositório e vamos fazer um upgrade do sistema no Servidor

aptitude update && aptitude dist-upgrade -y

Agora vamos instalar os pacotes necessários para o servidor trabalhar como NAS

aptitude install iscsitarget iscsitarget-dkms lvm2 -y

Agora vamos resolver as dependências dos módulos

depmod -a

Agora vamos carregar o módulo do iscsci

modprobe iscsi_trgt

Agora vamos deixar este módulo na inicialização do sistema

echo "iscsi_trgt" >> /etc/modprobe.d/iscsi.conf

Podemos listar informações dos nossos mapeamentos em

cat /proc/net/iet/session /proc/net/iet/volume

Agora precisamos marcar o disco /dev/sdb para que o LVM passa utilizar ele

pvcreate -v /dev/sdb

Agora vamos criar um grupo de volumes para podemos utilizar os lvs

vgcreate -v STORAGE /dev/sdb

Agora vamos criar um lv para utilizarmos como lun que é o dispositivo que vai ser entregue para os clientes

lvcreate -v -L 7G -n lun0 STORAGE

Agora vamos fazer backup do arquivo de configuração do iet que é quem controla as nossas luns

cp -a /etc/iet/ietd.conf{,.bkp}

Agora vamos deixar o arquivo como abaixo

vim /etc/iet/ietd.conf
#Identificação da nossa LUN
Target iqn.2013-01.br.com.douglasqsantos:storage.lun0
#Agora vamos definir um alias para a nossa lun
Alias LUN0
#Usuário utilizado para conectar na nossa lun
IncomingUser usuario senha
OutgoingUser
#Especifica aonde esta a nossa lun e o tipo padrão é o fileio
Lun 0 Path=/dev/STORAGE/lun0,Type=fileio
#Opções de conexões
MaxConnections 1
MaxSessions 0
NOPInterval 1
NOPTimeout 5
DataPDUInOrder Yes
DataSequenceInOrder Yes

Por padrão o acesso as luns é liberados para todos e isso não é legal com isso vamos liberar o acesso somente para a nossa faixa 10.101.0.0/24

Vamos fazer um backup do arquivo de configuração do controle de acesso as luns

cp /etc/iet/initiators.allow{,.bkp}

Agora vamos liberar o acesso a nossa lun para a rede 10.101.0.0/24 deixe o arquivo como abaixo não caso não tenha zerado o arquivo comente a linhas ALL ALL

vim /etc/iet/initiators.allow
[...]
iqn.2013-01.br.com.douglasqsantos:storage.lun0 10.101.0.0/24

Agora precisamos liberar o iscsitarget ser iniciado junto com o sistema

sed -i 's/ISCSITARGET_ENABLE=false/ISCSITARGET_ENABLE=true/g' /etc/default/iscsitarget

Agora vamos reiniciar o serviço para que ele reconheça a nossa Lun

/etc/init.d/iscsitarget restart

Podemos consultar as sessões em uma determinada lun da seguinte forma

cat /proc/net/iet/session 
tid:1 name:iqn.2013-01.br.com.douglasqsantos:storage.lun0

Podemos consultar os as luns exportadas da seguinte forma

cat /proc/net/iet/volume 
tid:1 name:iqn.2013-01.br.com.douglasqsantos:storage.lun0
  lun:0 state:0 iotype:fileio iomode:wt blocks:4194304 blocksize:512 path:/dev/STORAGE/lun0

Cliente Debian

Agora vamos mandar atualizar os repositórios e vamos fazer um upgrade do sistema

aptitude update && aptitude dist-upgrade -y

Agora vamos mandar instalar o cliente iscsi

aptitude install open-iscsi -y

Agora vamos mandar reiniciar o serviço do open-iscsi no cliente

/etc/init.d/open-iscsi restart

Agora vamos mandar listar a nossa lun pelo cliente

iscsiadm -m discovery -t st -p 10.101.0.25
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun0

Tivemos retorno do servidor NAS, agora vamos acertar a configuração de acesso a lun

Primeiro vamos habilitar a conexão automaticamente

iscsiadm -m node iqn.2013-01.br.com.douglasqsantos:storage.lun0 --op=update --name node.startup --value=automatic

Agora vamos acertar o tipo de autenticação que vai ser CHAP

iscsiadm -m node iqn.2013-01.br.com.douglasqsantos:storage.lun0 --op=update --name node.session.auth.authmethod --value=CHAP

Agora vamos acertar o nome do usuário da conexão

iscsiadm -m node iqn.2013-01.br.com.douglasqsantos:storage.lun0 --op=update --name node.session.auth.username --value=usuario

Agora vamos acertar a senha do usuário para conexão

iscsiadm -m node iqn.2013-01.br.com.douglasqsantos:storage.lun0 --op=update --name node.session.auth.password --value=senha

Agora vamos efetuar o login no servidor

iscsiadm -m node iqn.2013-01.br.com.douglasqsantos:storage.lun0 --login 
Logging in to [iface: default, target: iqn.2013-01.br.com.douglasqsantos:storage.lun0, portal: 10.101.0.25,3260]
Login to [iface: default, target: iqn.2013-01.br.com.douglasqsantos:storage.lun0, portal: 10.101.0.25,3260]: successful

Agora vamos ver se conseguimos o acesso

dmesg
[...]
[ 2603.886884] scsi9 : iSCSI Initiator over TCP/IP
[ 2604.907785] scsi 9:0:0:0: Direct-Access     IET      VIRTUAL-DISK     0    PQ: 0 ANSI: 4
[ 2604.910061] sd 9:0:0:0: Attached scsi generic sg3 type 0
[ 2604.919603] sd 9:0:0:0: [sdc] 14680064 512-byte logical blocks: (7.51 GB/7.00 GiB)
[ 2604.920254] sd 9:0:0:0: [sdc] Write Protect is off
[ 2604.920257] sd 9:0:0:0: [sdc] Mode Sense: 77 00 00 08
[ 2604.921303] sd 9:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2604.925890]  sdc:
[ 2604.932353] sd 9:0:0:0: [sdc] Attached SCSI disk

Como podemos notar agora temos o dispositivo sdc mapeado via iscsi, vamos criar uma partição nele

fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Comando (m para ajuda): n
Comando - ação
   e   estendida
   p   partição primária (1-4)
p
Número da partição (1-4): 1
Primeiro cilindro (1-1020, default 1): #ENTER
Using default value 1
Last cilindro, +cilindros or +size{K,M,G} (1-1020, default 1020): #ENTER
Using default value 1020

Comando (m para ajuda): w
A tabela de partições foi alterada!

Chamando ioctl() para reler tabela de partições.
Sincronizando discos.

Aqui eu criei uma partição com o tamanho total do disco, agora vamos criar um sistema de arquivos para essa partição

mkfs.ext4 -L ISCSI -m 0 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=ISCSI
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
458752 inodes, 1833952 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1879048192
56 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Aqui eu passei a opção de -L para especificar um label para a partição e passei o -m 0 para não reservar os 5% do disco para o usuário root.

Agora vamos criar um diretório para montarmos a nossa partição

mkdir /iscsi

Agora vamos montar a nossa partição

mount /dev/sdc1 /iscsi/

Agora vamos listar as nossas partições

df
Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
/dev/sda1     ext3    323M  192M  115M  63% /
tmpfs        tmpfs    249M     0  249M   0% /lib/init/rw
udev         tmpfs    244M  200K  244M   1% /dev
tmpfs        tmpfs    249M     0  249M   0% /dev/shm
/dev/sda9     ext3    2,8G   69M  2,6G   3% /home
/dev/sda8     ext3    234M  6,1M  216M   3% /tmp
/dev/sda5     ext3    2,8G  748M  1,9G  29% /usr
/dev/sda6     ext3    1,4G  234M  1,1G  18% /var
/dev/sdc1     ext4    6,9G  144M  6,8G   3% /iscsi

Está tudo ok, agora vamos inserir essa partição na inicialização do sistema

echo "/dev/sdc1 /iscsi ext4 _netdev,defaults,noatime 0 0" >> /etc/fstab

Como a montagem é via rede precisamos utilizar a opção _netdev e para agilizar o sistema de arquivo eu desabilitei a atualização de acesso dos arquivos.

Agora vamos ajustar o arquivo de conexão da iscsi

vim /etc/iscsi/iscsid.conf
[...]
node.startup = automatic
[...]
node.session.auth.authmethod = CHAP
[...]
node.session.auth.username = usuario
node.session.auth.password = senha
[...]
node.session.cmds_max = 1024 
[...]
node.session.queue_depth = 128
[...]
node.session.iscsi.FastAbort = No

Agora vamos reiniciar o cliente para confirmarmos a montagem

reboot

Agora vamos ver o uptime do cliente

uptime
 11:44:17 up 0 min,  1 user,  load average: 0.00, 0.00, 0.00

Agora vamos listar as nossas partições

df
Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
/dev/sda1     ext3    323M  192M  115M  63% /
tmpfs        tmpfs    249M     0  249M   0% /lib/init/rw
udev         tmpfs    244M  200K  244M   1% /dev
tmpfs        tmpfs    249M     0  249M   0% /dev/shm
/dev/sda9     ext3    2,8G   69M  2,6G   3% /home
/dev/sda8     ext3    234M  6,1M  216M   3% /tmp
/dev/sda5     ext3    2,8G  748M  1,9G  29% /usr
/dev/sda6     ext3    1,4G  234M  1,1G  18% /var
/dev/sdc1     ext4    6,9G  144M  6,8G   3% /iscsi

Agora vamos consultar a conexão do cliente no Servidor

No servidor NAS

cat /proc/net/iet/session 
tid:1 name:iqn.2013-01.br.com.douglasqsantos:storage.lun0
  sid:1125899927618048 initiator:iqn.1993-08.org.debian:01:fa98a8565dfe
    cid:0 ip:10.101.0.26 state:active hd:none dd:none

Agora vamos criar mais uma Lun

Agora vamos criar mais uma lv para utilizarmos como lun

lvcreate -v -L 7G -n lun1 STORAGE

No servidor NAS

vim  /etc/iet/ietd.conf
#Identificação da nossa LUN
Target iqn.2013-01.br.com.douglasqsantos:storage.lun0
#Agora vamos definir um alias para a nossa lun
Alias LUN0
#Usuário utilizado para conectar na nossa lun
IncomingUser usuario senha
OutgoingUser
#Especifica aonde esta a nossa lun e o tipo padrão é o fileio
Lun 0 Path=/dev/STORAGE/lun0,Type=fileio
#Opções de conexões
MaxConnections 1
MaxSessions 0
NOPInterval 1
NOPTimeout 5
DataPDUInOrder Yes
DataSequenceInOrder Yes

#Identificação da nossa LUN
Target iqn.2013-01.br.com.douglasqsantos:storage.lun1
#Agora vamos definir um alias para a nossa lun
Alias LUN1
#Especifica aonde esta a nossa lun e o tipo padrão é o fileio
Lun 1 Path=/dev/STORAGE/lun1,Type=fileio
#Opções de conexões
MaxConnections 1
MaxSessions 0
NOPInterval 1
NOPTimeout 5
DataPDUInOrder Yes
DataSequenceInOrder Yes

Agora vamos liberar o mapeamento da nossa nova lun para a rede 10.101.0.0/24

vim /etc/iet/initiators.allow
[...]
iqn.2013-01.br.com.douglasqsantos:storage.lun0 10.101.0.0/24
iqn.2013-01.br.com.douglasqsantos:storage.lun1 10.101.0.0/24

Agora vamos mandar reiniciar o serviço do iscsi-target

/etc/init.d/iscsitarget restart

Agora vamos consultar o nosso novo volume

cat /proc/net/iet/volume 
tid:2 name:iqn.2013-01.br.com.douglasqsantos:storage.lun1
  lun:1 state:0 iotype:fileio iomode:wt blocks:4194304 blocksize:512 path:/dev/STORAGE/lun1
tid:1 name:iqn.2013-01.br.com.douglasqsantos:storage.lun0
  lun:0 state:0 iotype:fileio iomode:wt blocks:4194304 blocksize:512 path:/dev/STORAGE/lun0

Cliente CentOS

Prepare o seu sistema com o seguinte script http://www.douglas.wiki.br/doku.php?id=confinicialcentos6 para que não falte nenhum pacote ou configuração.

vamos mandar fazer um update dos repositórios e vamos mandar fazer um update do sistema

yum check-update && yum update -y

Agora vamos mandar instalar o cliente para conexão iscsi

yum install iscsi-initiator-utils iscsi-initiator-utils-devel -y

Agora vamos colocar o cliente iscsi na inicialização do sistema

chkconfig --add iscsi
chkconfig --add iscsid

Agora vamos ativar ele

chkconfig iscsi on
chkconfig iscsid on

Agora vamos reiniciar o serviço

/etc/init.d/iscsi restart

Agora vamos listar as luns do servidor NAS

iscsiadm -m discovery -t st -p 10.101.0.25
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun1
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun0

Note que agora temos duas luns e quando mandarmos conectar ele vai mapear as duas, vamos ajustar isso.

Vamos obter o iqn do nosso cliente CentOS

cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:4a84d448b327

Agora que temos o iqn que é a identificação iscsi para o cliente vamos liberar a lun1 somente para ele

No servidor NAS

vim /etc/iet/initiators.allow
[...]
iqn.2013-01.br.com.douglasqsantos:storage.lun0 10.101.0.0/24
iqn.2013-01.br.com.douglasqsantos:storage.lun1 iqn.1994-05.com.redhat:4a84d448b327

Note que ainda temos um problema a lun1 ainda vai aparecer para o nosso cliente CentOS, porém a lun1 não deve aparecer para o debian, vamos reiniciar o iscsitarget

/etc/init.d/iscsitarget restart

Agora no cliente Debian vamos listar as luns

iscsiadm -m discovery -t st -p 10.101.0.25
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun0

Note que somente foi mapeado uma lun pois a outra lun fizemos o controle pelo iqn, agora vamos listar no cliente CentOS

iscsiadm -m discovery -t st -p 10.101.0.25
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun0
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun1

Note que ainda temos as duas luns, vamos verificar o iqn do cliente Debian.

tail -n 1 /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1993-08.org.debian:01:51fe411a118d

Agora vamos mudar no servidor NAS o acesso da lun1 para somente o cliente Debian possa utilizar ela

No servidor NAS

vim /etc/iet/initiators.allow
[...]
iqn.2013-01.br.com.douglasqsantos:storage.lun0 iqn.1993-08.org.debian:01:51fe411a118d
iqn.2013-01.br.com.douglasqsantos:storage.lun1 iqn.1994-05.com.redhat:4a84d448b327

Agora vamos reiniciar o iscsitarget

/etc/init.d/iscsitarget restart

Agora no cliente CentOS vamos listar as luns

iscsiadm -m discovery -t st -p 10.101.0.25
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun1

Se receber algum erro como abaixo.

iscsiadm -m discovery -t st -p 10.101.0.25
iscsiadm: This command will remove the record [iface: default, target: iqn.2013-01.br.com.douglasqsantos:storage.lun0, portal: 10.101.0.25,3260], but a session is using it. Logout session then rerun command to remove record.
10.101.0.25:3260,1 iqn.2013-01.br.com.douglasqsantos:storage.lun1

Precisamos mandar desconectar da lun da seguinte forma

iscsiadm -m node -u

Note que agora temos o controle das luns.

Agora como não precisamos mandar logar com o usuário e senha na lun1 vamos fazer o mapeamento

iscsiadm -m node -l -T iqn.2013-01.br.com.douglasqsantos:storage.lun1 -p 10.101.0.25:3260
Logging in to [iface: default, target: iqn.2013-01.br.com.douglasqsantos:storage.lun1, portal: 10.101.0.25,3260] (multiple)
Login to [iface: default, target: iqn.2013-01.br.com.douglasqsantos:storage.lun1, portal: 10.101.0.25,3260] successful.

Vamos listar a nossa conexão com o servidor NAS

iscsiadm -m session -P 2
Target: iqn.2013-01.br.com.douglasqsantos:storage.lun1
  Current Portal: 10.101.0.25:3260,1
  Persistent Portal: 10.101.0.25:3260,1
    **********
    Interface:
    **********
    Iface Name: default
    Iface Transport: tcp
    Iface Initiatorname: iqn.1994-05.com.redhat:bf9c07079f6
    Iface IPaddress: 10.101.0.50
    Iface HWaddress: <empty>
    Iface Netdev: <empty>
    SID: 1
    iSCSI Connection State: LOGGED IN
    iSCSI Session State: LOGGED_IN
    Internal iscsid Session State: NO CHANGE
    *********
    Timeouts:
    *********
    Recovery Timeout: 120
    Target Reset Timeout: 30
    LUN Reset Timeout: 30
    Abort Timeout: 15
    *****
    CHAP:
    *****
    username: <empty>
    password: ********
    username_in: <empty>
    password_in: ********
    ************************
    Negotiated iSCSI params:
    ************************
    HeaderDigest: None
    DataDigest: None
    MaxRecvDataSegmentLength: 262144
    MaxXmitDataSegmentLength: 8192
    FirstBurstLength: 65536
    MaxBurstLength: 262144
    ImmediateData: Yes
    InitialR2T: Yes
    MaxOutstandingR2T: 1

Podemos notar que temos a conexão e que ela está como LOGGED IN

Agora vamos consultar o dmesg

scsi7 : iSCSI Initiator over TCP/IP
scsi 7:0:0:1: Direct-Access     IET      VIRTUAL-DISK     0    PQ: 0 ANSI: 4
sd 7:0:0:1: Attached scsi generic sg2 type 0
sd 7:0:0:1: [sdc] 4194304 512-byte logical blocks: (7.51 GB/7.00 GiB)
sd 7:0:0:1: [sdc] Write Protect is off
sd 7:0:0:1: [sdc] Mode Sense: 77 00 00 08
sd 7:0:0:1: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
 sdc: unknown partition table
sd 7:0:0:1: [sdc] Attached SCSI disk

Como podemos notar agora temos o dispositivo sdc mapeado via iscsi, vamos criar uma partição nele

fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Comando (m para ajuda): n
Comando - ação
   e   estendida
   p   partição primária (1-4)
p
Número da partição (1-4): 1
Primeiro cilindro (1-1020, default 1): #ENTER
Using default value 1
Last cilindro, +cilindros or +size{K,M,G} (1-1020, default 1020): #ENTER
Using default value 1020

Comando (m para ajuda): w
A tabela de partições foi alterada!

Chamando ioctl() para reler tabela de partições.
Sincronizando discos.

Aqui eu criei uma partição com o tamanho total do disco, agora vamos criar um sistema de arquivos para essa partição

mkfs.ext4 -L ISCSI -m 0 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=ISCSI
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
458752 inodes, 1833952 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1879048192
56 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Aqui eu passei a opção de -L para especificar um label para a partição e passei o -m 0 para não reservar os 5% do disco para o usuário root.

Agora vamos criar um diretório para montarmos a nossa partição

mkdir /iscsi

Agora vamos montar a nossa partição

mount /dev/sdc1 /iscsi/

Agora vamos listar as nossas partições

df
Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
/dev/sda5     ext4     47G  7,8G   37G  18% /
tmpfs        tmpfs    3,9G  5,3M  3,9G   1% /dev/shm
/dev/sda1     ext4    461M   81M  357M  19% /boot
/dev/sda7     ext4    410G  232G  157G  60% /home
/dev/sdb1     ext4    294G  191M  279G   1% /srv
/dev/sdc1     ext4    6,9G  144M  6,8G   3% /iscsi

Está tudo ok, agora vamos inserir essa partição na inicialização do sistema

echo "/dev/sdc1 /iscsi ext4 _netdev,defaults,noatime 0 0" >> /etc/fstab

Como a montagem é via rede precisamos utilizar a opção _netdev e para agilizar o sistema de arquivo eu desabilitei a atualização de acesso dos arquivos.

Agora vamos ajustar o arquivo de conexão da iscsi

vim /etc/iscsi/iscsid.conf
[...]
node.startup = automatic
[...]
node.session.cmds_max = 1024 
[...]
node.session.queue_depth = 128
[...]
node.session.iscsi.FastAbort = No

Agora vamos reiniciar o cliente para confirmarmos a montagem

reboot

Agora vamos ver o uptime do cliente

uptime
 15:26:35 up 0 min,  1 user,  load average: 0.00, 0.00, 0.00

Agora vamos listar as nossas partições

df
Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
/dev/sda5     ext4     47G  7,8G   37G  18% /
tmpfs        tmpfs    3,9G  5,3M  3,9G   1% /dev/shm
/dev/sda1     ext4    461M   81M  357M  19% /boot
/dev/sda7     ext4    410G  232G  157G  60% /home
/dev/sdb1     ext4    294G  191M  279G   1% /srv
/dev/sdc1     ext4    6,9G  144M  6,8G   3% /iscsi

Agora vamos consultar a conexão do cliente no Servidor

No servidor NAS

cat /proc/net/iet/session 
tid:2 name:iqn.2013-01.br.com.douglasqsantos:storage.lun1
  sid:562949990973952 initiator:iqn.1994-05.com.redhat:43c7a0d2ad63
    cid:0 ip:10.101.0.1 state:active hd:none dd:none
tid:1 name:iqn.2013-01.br.com.douglasqsantos:storage.lun0
  sid:281474997486080 initiator:iqn.1993-08.org.debian:01:fa98a8565dfe
    cid:0 ip:10.101.0.26 state:active hd:none dd:none

Agora vamos consultar os nossos volumes

cat /proc/net/iet/volume 
tid:2 name:iqn.2013-01.br.com.douglasqsantos:storage.lun1
  lun:1 state:0 iotype:fileio iomode:wt blocks:4194304 blocksize:512 path:/dev/STORAGE/lun1
tid:1 name:iqn.2013-01.br.com.douglasqsantos:storage.lun0
  lun:0 state:0 iotype:fileio iomode:wt blocks:4194304 blocksize:512 path:/dev/STORAGE/lun0

Caso precise adicionar mais luns é só criar o lv e inserir as entradas necessárias em /etc/iet/ietd.conf

Referências