CentOS iSCSI Initiator 挂载存储

iSCSI(发音为 /аɪskʌzi/)又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:
把原来只用于本机的SCSI协同透过TCP/IP网络传送,使连接距离可作无限的地域延伸;
连接的服务器数量无限(原来的SCSI-3的上限是15);
由于是服务器架构,因此也可以实现在线扩容以至动态部署。

安装iSCSI initiator

# yum -y install iscsi-initiator-utils

相关文件说明

/etc/iscsi/iscsid.conf:主要的配置文件,用来连结到 iSCSI target 的设定;
/etc/iscsi/initiatorname.iscsi: 里面保存挂载的iSCSI Target名;
/sbin/iscsiadm:用来管理 iSCSI initiator 的主要设定程序;
/var/lib/iscsi/nodes:在此目录下会生成一个或多个已iscsi存储服务器上的Target名命名的文件夹。

配置存储分配的target账号密码

编辑/etc/iscsi/iscsid.conf,将下面三行前面的注释去掉,并修改账号密码

node.session.auth.authmethod = CHAP

node.session.auth.username_in = username_in

node.session.auth.password_in = password_in

执行iSCSI Target 发现

# iscsiadm -m discovery -t sendtargets -p ip

# iscsiadm -m discovery -t st -p ip

启动iscsi

# service iscsi start

显示出目前系统上面所有的 target 数据

# iscsiadm -m node

显示当前登录进去的target

# iscsiadm -m session

登入某个target

# iscsiadm -m node -T target名称 -l

登入所有的target

# iscsiadm -m node -L all

登出某个target

# iscsiadm -m node -T target名称 -p IP-u

登出所有的target

# iscsiadm -m node -U all

删除一个目标(/var/lib/iscsi/nodes目录下)

# iscsiadm -m node -o delete -name target名称

删除一个目标(/var/lib/iscsi/send_targets目录下)

# iscsiadm --mode discovery -o delete -p ip

刪除所有node (需重新discovery)

# iscsiadm -m node --op delete

进行分区并格式化

# fdisk -l

查看到硬盘设备,并格式化分区
如果小于 2T 分区,可以使用 fdisk 进行分区,使用 MBR 分区表,
如果大于 2T 分区,则不能使用 MBR 分区表,需要使用 GPT 分区表。
使用 Parted 命令进行分区。
格式化时硬盘分区太大,可以使用 -T largefile 参数

# mkfs.ext4 -T largefile /dev/sdb1

fstab中添加

/dev/sdb1 /data ext4 _netdev 0 0

但是,Linux系统重启后,磁盘设备的名称可能会发生飘移,从而引起文件系统不能挂载上来或者不能正确挂载,
使用UUID的方式进行挂载可以解决这个问题
命令tune2fs -l /dev/sdb1可以查到文件系统的UUID
在/etc/fstab中添加
UUID=xxxxxxx /data ext4 _netdev 0 0 替换掉原来的那行