博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cinder错误解决方案
阅读量:5033 次
发布时间:2019-06-12

本文共 4741 字,大约阅读时间需要 15 分钟。

很多初学者在进行OpenStack Havana 安装过程中进行设置Cinder时,进行重启服务

service iscsitarget startservice open-iscsi start

经常出现 “modules iscsi_trgt not found”这样的错误,很多情况下是因为 /lib/modules/3.1.0-32-generic/kernel/iscsi文件中缺少iscsi_trgt.ko文件。所以接下来要通过以下办法来解决这个错误。

Target端的配置

下载iscsitarget

进入终端,输入

#wget http://sourceforge.net/projects/iscsitarget/files/

创建iscsi_trgt.ko文件

输入#ls,会发现在当前目录下出现 branchs tags trunks三个文件夹然后#cd trunks进入trunks文件目录,输入 以下两条命令

#sudo make#sudo make install

查看当前目录,会发现文件中iscsi_trgt.ko已经创建。

该包会将iscsitarget需要的内核模块,用户层工具,服务启动脚本,配置文件,man手册等安装到系统中
  包括:
  

iscsi_trgt.ko 内核模块  ietd iscsitarget的守护进程  ietadm iscsitarget的用户层管理工具  /etc/init.d/iscsi-target iscsitarget的启动脚本  /etc/ietd.conf iscsitarget的配置文件  /etc/initiators.allow 控制initiator对target的访问权限。  /etc/initiators.deny 控制initiator对target的访问权限。  /etc/iet/targets.allow 控制不同target的被访问权限。

配置/etc/ietd.conf

  Target iqn.2001-04.com.example:storage.disk2.sys1.xyz

  Lun 0 Path=/dev/sda1,Type=fileio
  Alias lun0
  大致说明:
  Target iqn.2001-04.com.example:storage.disk2.sys1.xyz 表示该ISCSI Target 的命名,命名在同一子网内应该是唯一的,标准命名方式为:
  “Target “+ target名字 (格式如下: iqn.yyyy-mm.[:identifier] )
  “Lun 0 Path=/dev/sda1”表示块设备号为0,映射的磁盘为/dev/sda1。
  本次配置中 Type 的设定为”fileio”,我主要用来对一个磁盘进行存储共享。
  当然也可以针对需要设置为: “file” or “LVM”。
  除此之外还有很多其他参数可以设置,具体参考:
启动iscsitarget

/etc/init.d/iscsi-target start

iscsi_trgt.ko复制到内核

在iscsi_trgt.ko所在文件夹中执行以下命令

#mkdir /lib/modules/`uname -r`/kernel/iscsi#find / -name “iscsi_trgt.ko”#cp iscsi_trgt.ko /lib/modules/`uname -r`/kernel/iscsi#depmod -aq

这样重新启动服务,就不会出现上述错误了。

当前网络架构

inititor端配置

软件包

  源码包是open-iscsi,经过rpm包封装后,名字是iscsi-initiator-utils。

安装文件

  /etc/iscsi/iscsid.conf  /etc/rc.d/init.d/iscsi  /etc/rc.d/init.d/iscsid  /sbin/iscsi-iname  /sbin/iscsiadm  /sbin/iscsid  /sbin/iscsistart  /var/lib/iscsi  /var/lib/iscsi/ifaces  /var/lib/iscsi/isns  /var/lib/iscsi/nodes  /var/lib/iscsi/send_targets  /var/lib/iscsi/slp  /var/lib/iscsi/static  /var/lock/iscsi

连接target

  首先要保证iscsid守护进程启动,否测iscsiadm的一系列操作都会失败:

  /etc/init.d/iscsid start
  发现target:
  iscsiadm -m discovery -t sendtargets -p :
  默认情况下是3260,除非你有特殊的设置。
  与target建立连接:
  iscsiadm -m node -T -p : –login
  此处target-name为上一步发现target时的获得的
此时通过fdisk -l就可以看到映射过来的磁盘,该磁盘可以像使用本地磁盘一样进行格式化,分区等操作。
  可以通过以下命令实验:
  

   fdisk /dev/sdc  mkfs.ext3 /dev/sdc1  mount /dev/sdc1 /mnt  dd if=/dev/zero of=100M.img bs=1M count=100

target和initiator间使用CHAP验证。

  CHAP验证有两种,一种是针对discovery的,即如果不符合验证的用户名和密码,则initiator端便无法通过”-m discovery”发现指定主机上的任何一个target。

  命令会返回验证失败,如下:
 

$  iscsiadm -m discovery -t sendtargets -p 192.168.29.224  iscsiadm: Login failed to authenticate with target  iscsiadm: discovery login to 192.168.29.224 rejected:     initiator error (02/01), non-retryable, giving up

 

  另一种是针对node login的,即果不符合验证的用户名和密码,则initiator端编无法通过–login登录指定主机上的某一个target。
  命令会返回验证失败,如下:
  

  $ iscsiadm -m discovery -t sendtargets -p 192.168.29.224  #成功discover指定主机上的target  192.168.29.224:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz  $ iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.29.224 --login  #无法通过验证,登录失败  Logging in to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.29.224,3260]  iscsiadm: Could not login to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.29.224,3260]:  iscsiadm: initiator reported error (15 - already exists)

initiator端配置/etc/iscsi/iscsid.conf

添加如下选项:

#以下三个是针对discovery的。  #discovery时启用CHAP验证  discovery.sendtargets.auth.authmethod = CHAP  #initiator的名字,也可以是别的字符串,只要和target端IncomingUse配置的名字一样就行  discovery.sendtargets.auth.username = iqn.1994-05.com.fedora:ba72af8aaf5  #验证密码,要和target端相同discovery.sendtargets.auth.password = 1234567890ab  #以下三个是针对login的。  #login时启用CHAP验证  node.session.auth.authmethod = CHAP  #initiator的名字,也可以是别的字符串,只要和target端IncomingUse配置的名字一样就行  node.session.auth.username = iqn.1994-   05.com.fedora:ba72af8aaf5  #验证密码,要和target端相同  node.session.auth.password = 1234567890  然后重启initiator。  /etc/init.d/iscsid stop  /etc/init.d/iscsid start

target端针对discovery配置/etc/ietd.conf

在全局参数处(定义第一个target之前),添加如下一行:

IncomingUser iqn.1994-05.com.fedora:ba72af8aaf5 1234567890ab
IncomingUser 和 OutgoingUser 表示ISCSI 客户端的用户名和密码,用户名和密码都可以为空,默认为allow权限,密码最长可为12个字符。
 此处iqn.1994-05.com.fedora:ba72af8aaf5是initiator的名字(也可以是别的字符串),1234567890ab是initiator的密码,名字和密码必须和initiator上/etc/iscsi/iscsid.conf
 中的用户名密码一致。如果不一致,则initiator执行”-m discovery” 是就会失败。
 针对login配置/etc/ietd.conf,既然是针对login的,那么添加IncomingUser是就应该添加的指定的target上。如下:
 

 Target iqn.2001-04.com.example:storage.disk2.sys1.xyz Lun 0 Path=/dev/sda1,Type=fileio IncomingUser iqn.1994-05.com.fedora:ba72af8aaf5 1234567890

 然后重启iscsitarget

 /etc/init.d/iscsi-target stop
 /etc/init.d/iscsi-target start
 参考文档:

转载于:https://www.cnblogs.com/ainima/p/6331870.html

你可能感兴趣的文章
HM16.0之帧内模式——xCheckRDCostIntra()函数
查看>>
Jmeter性能测试 入门
查看>>
安卓动画有哪几种?他们的区别?
查看>>
ssh 连接原理及ssh-keygen
查看>>
vs2013编译qt程序后中文出现乱码
查看>>
【转】IOS数据库操作SQLite3使用详解
查看>>
Android官方技术文档翻译——ApplicationId 与 PackageName
查看>>
【转】ButterKnife基本使用--不错
查看>>
【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”...
查看>>
函数中关于const关键字使用的注意事项
查看>>
js随机数的取整
查看>>
用php做一个简单的注册用户功能
查看>>
一款基于css3的3D图片翻页切换特效
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>
hadoop2.2.0_hbase0.96_zookeeper3.4.5全分布式安装文档下载
查看>>
Flutter 贝塞尔曲线切割
查看>>
golang 的编译安装以及supervisord部署
查看>>
阿里架构师,讲述基于微服务的软件架构模式
查看>>
Eclipse导入maven项目时,Pom.xml文件报错处理方法
查看>>
01、JAVA开发准备
查看>>