继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Centos7 ISCSI配置 完全攻略

胡说叔叔
关注TA
已关注
手记 521
粉丝 130
获赞 582

一. iscsi简单介绍

iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)

iscsi通过IP-SAN网络的iscsi协议, 把服务端的存储资源(RAID) 封装到本地,像使用本地硬盘那样使用网络上的硬盘。

iSCSI技术在工作形式上分为服务端(target)与客户端(initiator),iSCSI服务端即用于存放硬盘存储资源的服务器, 而iSCSI客户端则是用户使用的软件,用于获取远程服务端的存储资源

在Centos7上 默认的服务端软件是targetcli, 客户端的软件是iscsiadm

二. 标准的iscsi连接方式(包含CHAP认证)

服务端targetcli的简单介绍

targetcli是 Target的用户态的管理配置工具。提供了一个类似Shell的环境

可以用使用一些shell命令 如:ls 、cd、 ctr+R 历史命令搜索 TAB 命令 补全

targetcli 把各种类型资源 抽象成目录。 我们在相应的目录进行创建就行,

只要理解了各种目录的含义就容易使用了

复制代码

targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'./> lso- / ............................................................................ [...]
  o- backstores ................................................................. [...]  | o- block ..................................................... [Storage Objects: 0]  | o- fileio .................................................... [Storage Objects: 0]  | o- pscsi ..................................................... [Storage Objects: 0]  | o- ramdisk ................................................... [Storage Objects: 0]
  o- iscsi ............................................................... [Targets: 0]
  o- loopback ............................................................ [Targets: 0]/>

复制代码

/backstores/block 这个目录是服务端配置一般存储资源。

ramdisk 这个是把内存当作存储资源

我们目前用的是/backstores/block 这个目录和/iscsi目录下的一些目录。

 

targetcli创建iscsi简单流程

复制代码

#创建共享资源 并重命名disk0
$ /> /backstores/block create disk0 /dev/mapper/testraid60-123#创建iscsi 格式 iqn.<如:2018-09>.com.<不能有下划线>:<不能有下划线>$ /backstores> /iscsi create iqn.2018-09.com.adawang:ada1
Created target iqn.2018-09.com.adawang:ada1.
Created TPG 1.
Global pref auto_add_default_portal=trueCreated default portal listening on all IPs (0.0.0.0), port 3260.
#进入创建后的iscsi目录
$ /backstores> cd /iscsi/iqn.2018-09.com.adawang:ada1/tpg1/$ /iscsi/iqn.20...ang:ada1/tpg1> lso- tpg1 .............................. [no-gen-acls, no-auth]
  o- acls ......................................... [ACLs: 0]
  o- luns .......................................... [LUNs: 0]
  o- portals .................................... [Portals: 1]
    o- 0.0.0.0:3260 ...................................[OK]
# lun配置 添加最开始创建的disk0    
$ /iscsi/iqn.20...ang:ada1/tpg1> cd luns
$ /iscsi/iqn.20...da1/tpg1/luns>create /backstores/block/disk0 
Created LUN 0.
#Ip配置 需要删除默认的0.0.0.0 ip才能创建
$ /iscsi/iqn.20...ang:ada1/tpg1> cd ../portals
$ /iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260Deleted network portal 0.0.0.0:3260$ /iscsi/iqn.20.../tpg1/portals> create 10.10.110.2 3260Using default IP port 3260Created network portal 10.10.110.2:3260.
# acl配置
$ /iscsi/iqn.20.../tpg1/portals> cd ../acls
#创建acl用户名 acl格式和iqn一致
$ /iscsi/iqn.20...da1/tpg1/acls> create iqn.2018-09.com.adawang:ada2
Created Node ACL for iqn.2018-09.com.adawang:ada2
Created mapped LUN 0.
$ /iscsi/iqn.20...da1/tpg1/acls> cd iqn.2018-09.com.adawang:ada2/#设置acl密码
$ /iscsi/iqn.20....adawang:ada2> set auth password=123456789012 Parameter password is now '123456789012'.
#退出
$ /iscsi/iqn.20....adawang:ada2> exit 
Global pref auto_save_on_exit=trueLast 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

复制代码

 

Initiator客户端 配置

修改配置文件
  1. 修改init端名称(可选部分)

$ echo 'InitiatorName=<名称>'  > /etc/iscsi/initiatorname.iscsi
$ source /etc/iscsi/initiatorname.iscsi
#重启iscsi服务
$ systemctl restart iscsid.service

   source /etc/iscsi/initiatorname.iscsi

  表示配置后的变量名InitiatorName 加载到当前Bash环境下( source 可以用 . 代替)

  2.修改iscsi配置文件 iscsid.conf (一般首次配置 修改)

复制代码

$ vim /etc/iscsi/iscsid.conf
....省略...
# *************# CHAP Settings
# *************# To enable CHAP authentication set node.session.auth.authmethod
# to CHAP. The default is None.
node.session.auth.authmethod = CHAP
# To set a CHAP username and password for initiator
# authentication by the target(s), uncomment the following lines:
node.session.auth.username = <initiatorname.iscsi文件配置的名称>node.session.auth.password = <12位-16位长度密码>....后文省略...

复制代码

 

发现并连接target目标
  #发现门户ip下的所有target目标
  $ iscsiadm -m discovery -t st -p <界面配置的门户ip>  
  ##连接
  $ iscsiadm -m node -T <target目标名> -p  <门户ip>  -l
连接成功后查询连接的磁盘

方法一:fdisk -l 或 lsblk 命令查看

  发现新增加的网络硬盘 /dev/sd<a-z>

  方法二: lsscsi -ds

常用参数 -d 显示设备主次序列号
        -s 显示容量大小
        -c 用全称显示默认的信息

14:0:0:1 最后的1代表lun id , 14代表主机控制器HOST序号

  方法三:iscsiadm -m session -P 3

最后一行 Attached scsi disk sda

-m session 显示会话信息 ,参数 -P <0-3> 对应print级别,级别越高信息越详细。

 

格式化成xfs文件系统并挂载

用mkfs工具对发现的磁盘分区创建文件系统

$ mkfs.xfs <磁盘路径 如:/dev/sda >$ mkdir  /mnt/iscsi
$ mount /dev/sda  /mnt/iscsi
设置开机自动挂载(可选部分)

复制代码

#blkid命令 查看挂载磁盘的uuid
$ blkid | grep sda /dev/sda: UUID="c02b0cbe-eaca-e082-4f4a-7490d831e96e" TYPE="xfs"#修改fstab
$ vim /etc/fstab 
# /etc/fstab
# Created by anaconda on Fri Feb 23 09:53:59 2018# Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info/dev/mapper/centos-root /                       xfs     defaults        0 0UUID=0b29b82e-20a5-488b-9606-b1b20e72e0aa /boot xfs     defaults        0 0/dev/mapper/centos-home /home                   xfs     defaults        0 0/dev/mapper/centos-swap swap                    swap    defaults        0 0UUID=c02b0cbe-eaca-e082-4f4a-7490d831e96e /mnt/iscsi xfs
defaults, _netdev 0 0#确保fstab修改无误
$ mount -a

复制代码

系统在启动的时候会自动挂载 fstab里的,如果发送错误 则会导致系统无法启动。

一般在修改fstab后用mount -a 命令 加载fstab配置表测试修改是否无误,没有打印代表正常。

因为/dev/sda 容易盘符漂移,所以用uuid全局唯一标示符来代替磁盘符号。

iscsi盘是网络存储设备,需要加上_netdev参数,表示联网后在挂载,否则导致开机太长或系统启动失败。

三. 标准的iscsi断开方式

$ umount /mnt/iscsi
# 如果 需要断开全部iscsi 使用iscsiadm -m node -u 
$ iscsiadm -m node -T <target名称> -u 
# 删除节点记录。
# 如果 需要删除所有节点记录 使用iscsiadm -m node -o delete
$ iscsiadm -m node -o delete -T <target的名称> -p <门户ip>

四. 你可能会遇见的问题

  • 目录显示输入输出错误

  • 挂载的时候显示文件系统损坏

  不同文件系统的在线扩容方法以上2中情况都是因为没有断开iscsi的时候没有正常卸载,mount的时候显示文件系统的损化,是因为之前已经挂载过相同盘符或目录,可以通过mount命令查看挂载记录。

    

        解决办法:mount <盘符或者挂载目录>

  •  无法umount 目录

   有2种情况:

  目录被BASH占用--在挂载目录进行卸载

  这种情况切换到非挂载目录下就可以卸载了

  因磁盘或目录被其他进程占用导致无法卸载

  这种解决起来稍微麻烦点

  1.用lsof 命令寻找到已经打开的文件的PID号

  2.ps aux | grep <磁盘名或目录名> 查找进程的pid号

  3.kill -9 <pid号> 命令 杀死该进程

  4.最后umount卸载

  

五. 在线添加lun方法

  服务器新添加了一个LUN,那么主机端需要刷新下会话

 

 iscsiadm -m session -R

六. ext4 xfs文件系统的在线扩容方法

  1. 刷新iscsi会话

    iscsiadm -m session -R

  2. ext4扩容

    resize2fs /dev/<LUN挂载的设备名>

  3. xfs扩容

    xfs_growfs /dev/<LUN挂载的设备名>

  

  可以看到 扩容前后 blocks 变化

 

七. Centos7 多路径的一般使用

加载多路径驱动和启动服务

复制代码

$ multipath
#打印提示驱动没有加载
Sep 12 17:22:38 | DM multipath kernel driver not loaded
Sep 12 17:22:38 | DM multipath kernel driver not loaded
$ modprobe dm-multipath
$ modprobe dm-round-robin
#查看多路径multipathd服务状态 结果显示未启动
$ systemctl status multipathd
 multipathd.service - Device-Mapper Multipath Device Controller
   Loaded: loaded (/usr/lib/systemd/system/multipathd.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
# 启动服务
$ systemctl start multipathd

复制代码

常用的multipath 指令

复制代码

$ multipath  <指令>

---

-r  重新加载配置表  multipthd.conf 。修改配置表或者用multipath -F命令后使用-ll 显示当前所有路径的信息,一般用于测试多路径是否生效-F 刷新所有多路径设备map表-v3 调整debug调式级别打印, 一般用于错误诊断 (打印级别默认v2)

复制代码

配置多路径软件 multipthd.conf

$ vim /etc/multipthd.conf
## Use user friendly names, instead of using WWIDs as names.
defaults {
       user_friendly_names yes
       find_multipaths yes
}

如果/etc/multipthd.conf 不存在, 可以用默认的多路径配置拷贝到 /etc目录

$ cp /usr/share/doc/device-mapper-multipath- 0.4.9/multipath.conf /etc/#如果不记得默认的配置表存放目录可以用Find 命令找出来
$ find / -name multipath.conf/etc/multipath.conf/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf

查看多路径合成结果

复制代码

$ multipth -ll
#多路径合并后的设备 /dev/mapper/mpatha 以后都用这个设备进行操作
mpatha (360a9800064665072443469563477396c) dm-0 NETAPP,LUN    

size=35G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=4 status=active
 #多路径下的两个盘符sdb和sde.|- 1:0:0:0 sdb 8:16 active ready  running  

`- 2:0:0:0 sde 8:64 active ready  running

复制代码

注意:以后都用合成后的设备/dev/mapper/mpatha进行格式化挂载等操作,不能用其他设备进行操作

原文出处:https://www.cnblogs.com/jiang-cheng/p/9927371.html  

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP