rhel6.3搭建iscsi-target服务器实战

简介:

iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI的最大好处是能提供快速的网络环境,虽然其性能和带宽跟光纤网络还有一些差距,但能节省企业约30-40%的成本。

下面我们来看一下在RHEL6.3上如何搭建iscsi-target服务器和客户端如何挂载.

一、服务端操作

服务端版本:

[root@racscsi home]# uname -r

2.6.32-279.el6.x86_64

[root@racscsi home]# cat /etc/redhat-release 

Red Hat Enterprise Linux Server release 6.3 (Santiago)

安装iscsi server软件包。

用RPM的方式安装。

[root@racscsi home]# rpm -ivh scsi-target-utils-1.0.24-2.el6.x86_64.rpm 

warning: scsi-target-utils-1.0.24-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing... ########################################### [100%]

package scsi-target-utils-1.0.24-2.el6.x86_64 is already installed

用yum命令安装(需自己配置YUM源)

[root@racscsi home]#yum -y install scsi-target-utils

启动服务并且添加到开机自启动。

[root@racscsi home]# /etc/init.d/tgtd start

Starting SCSI target daemon: [ OK ]

[root@racscsi home]# chkconfig tgtd on


使用fdisk命令创建几个分区,或者通过外部存储映射共享分区。

现在这台服务器已划分好/dev/sdb、 /dev/sdc、 /dev/sdd、 /dev/sde、 /dev/sdf、 /dev/sdg 、/dev/sdh、/dev/sdi分区,用于客户端的挂载

下面我们需要编辑配置文件/etc/tgt/targets.conf,并设置下iSCSI Qualified Name (IQN).

[root@racscsi home]#vim /etc/tgt/ targets.conf

在文件末尾添加如下内容

<target iqn.2008-09.com.example:asm> #iqn名字可任意

backing-store /dev/sdb 

backing-store /dev/sdc

backing-store /dev/sdd

backing-store /dev/sde

backing-store /dev/sdf 

backing-store /dev/sdg

backing-store /dev/sdh

backing-store /dev/sdi 

initiator-address 192.168.10.0/24 #限定允许访问的客户端地址段或具体IP

write-cache off #是否开启或关闭快取

</target>

重启服务,使修改后的配置生效。

[root@racscsi home]#/etc/init.d/tgtd restart

确定iscsi server是否成功。如果显示如下说明配置iscsi server已经成功。

[root@racscsi home]# tgt-admin --show

Target 1: iqn.2008-09.com.example:asm

System information:

Driver: iscsi

State: ready

I_T nexus information:

I_T nexus: 1

Initiator: iqn.1994-05.com.redhat:b363811441a

Connection: 0

IP Address: 192.168.10.212

LUN information:

LUN: 0

Type: controller

SCSI ID: IET 00010000

SCSI SN: beaf10

Size: 0 MB, Block size: 1

Online: Yes

Removable media: No

Prevent removal: No

Readonly: No

Backing store type: null

Backing store path: None

Backing store flags: 

LUN: 1

Type: disk

SCSI ID: IET 00010001

SCSI SN: beaf11

Size: 2147 MB, Block size: 512

Online: Yes

Removable media: No

Prevent removal: No

Readonly: No

Backing store type: rdwr

Backing store path: /dev/sdb

Backing store flags: 

。。。。。。。。。。。。 #中间内容省略

LUN: 8

Type: disk

SCSI ID: IET 00010008

SCSI SN: beaf18

Size: 5369 MB, Block size: 512

Online: Yes

Removable media: No

Prevent removal: No

Readonly: No

Backing store type: rdwr

Backing store path: /dev/sdi

Backing store flags: 

Account information:

ACL information:

192.168.10.0/24

注意:关闭服务端的IPTABLES,以免客户端无法正常访问


二、客户端挂载

客户端需安装的包iscsi-initiator-utils

[root@rac2 home]# rpm -ivh iscsi-initiator-utils-6.2.0.872-41.el6.x86_64.rpm 

warning: iscsi-initiator-utils-6.2.0.872-41.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing... ########################################### [100%]

1:iscsi-initiator-utils ########################################### [100%]

用yum命令安装(需自己配置YUM源)

[root@rac2 home]#yum -y install iscsi-initiator-utils


启动服务并且添加到开机启动。

[root@rac2 Desktop]# /etc/init.d/iscsid start

[root@rac2 Desktop]# chkconfig iscsid on


发现服务器端iscsi server的共享分区。

[root@rac2 Desktop]# iscsiadm --mode discovery --type sendtargets --portal 192.168.10.220

192.168.10.220:3260,1 iqn.2008-09.com.example:asm

已发现


登陆到iscsi server共享的分区。

[root@rac2 Desktop]# iscsiadm -m node -T iqn.2008-09.com.example:asm -p 192.168.10.220 -l

Logging in to [iface: default, target: iqn.2008-09.com.example:asm, portal: 192.168.10.220,3260] (multiple)

Login to [iface: default, target: iqn.2008-09.com.example:asm, portal: 192.168.10.220,3260] successful.


再使用fdisk -l命令查看分区,发现共享出来的分区都已经挂过来了。

[root@rac2 Desktop]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000586f0


Device Boot Start End Blocks Id System

/dev/sda1 * 1 39 307200 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 39 549 4096000 82 Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3 549 2611 16567296 83 Linux


Disk /dev/sdb: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdc: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdd: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sde: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdf: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdg: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdh: 5368 MB, 5368709120 bytes

166 heads, 62 sectors/track, 1018 cylinders

Units = cylinders of 10292 * 512 = 5269504 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdi: 5368 MB, 5368709120 bytes

166 heads, 62 sectors/track, 1018 cylinders

Units = cylinders of 10292 * 512 = 5269504 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000


最后你可以格式化分区,挂载在本地相应目录。如果要实现开机自动挂载,要在fstab文件添加记录。

注意添加_netdev参数,要不你在重启iscsi server后,启动时会报错。

示例: /dev/sdb /crs ext4 default,_netdev 0 0


补充:

如果在服务端/etc/tgt/targets.conf文件配置了用户名密码,比如

<target iqn.2008-09.com.example:server.target3>

backing-store /dev/sdb 

initiator-address 192.168.10.0/24 

incoming grid 123@passwd 

write-cacheoff 

</target>


则在客户端/etc/iscsi/iscsid.conf配置文件

需要添加相应的账号和密码

node.session.auth.username = grid

node.session.auth.password = 123@passwd

discovery.sendtargets.auth.username = grid

discovery.sendtargets.auth.password = 123@passwd
















本文转自东方之子736651CTO博客,原文链接:http://blog.51cto.com/ecloud/1387017 ,如需转载请自行联系原作者








相关文章
|
2月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
449 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
2月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
4月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
303 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
5月前
|
弹性计算 Linux 网络安全
阿里云服务器迁移中心SMC实战指南:跨平台业务迁移教程参考
现在越来越多的个人和企业用户选择将其他云平台或者服务商的业务迁移到阿里云,但是如何快速且安全完成迁移是很多用户比较关注的问题,我们可以选择使用阿里云提供的服务器迁移中心(Server Migration Center,简称SMC),这个产品是阿里云提供给您的迁移平台,专注于提供能力普惠、体验一致、效率至上的迁移服务,满足您在阿里云的迁移需求。本文为大家展示使用阿里云服务器迁移中心SMC将其他云平台业务迁移至阿里云的教程,以供参考。
|
5月前
|
弹性计算 资源调度 搜索推荐
阿里云ECS中长期成本节省计划解析:从原理到实战,助力企业降本提效
阿里云ECS节省计划的推出为企业用户提供了一种全新的成本优化方案。通过一次性购买的方式享受长期按量付费的折扣权益,客户不仅可以大幅降低ECS资源的使用成本还可以享受更高的灵活性和便捷性。本文将从多个维度深入剖析阿里云ECS节省计划,包括其核心优势、详尽的购买使用指引、与传统付费模式的全面对比,以及一客户成功案例,以供大家了解和参考。
|
5月前
|
Go API 定位技术
MCP 实战:用 Go 语言开发一个查询 IP 信息的 MCP 服务器
随着 MCP 的快速普及和广泛应用,MCP 服务器也层出不穷。大多数开发者使用的 MCP 服务器开发库是官方提供的 typescript-sdk,而作为 Go 开发者,我们也可以借助优秀的第三方库去开发 MCP 服务器,例如 ThinkInAIXYZ/go-mcp。 本文将详细介绍如何在 Go 语言中使用 go-mcp 库来开发一个查询 IP 信息的 MCP 服务器。
328 0
|
9月前
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
11月前
|
机器学习/深度学习 弹性计算 运维
云计算系列之阿里云ECS服务器管理实战
本文档介绍了阿里云ECS(Elastic Compute Service)的基本概念、实例管理、磁盘操作、快照与镜像功能及其应用场景,最后通过具体案例解析ECS的实际应用。ECS是阿里云提供的高效、可靠的云计算服务,支持多种业务需求,如Web应用、高并发网站、数据库等,帮助企业快速构建稳定安全的应用,提升运维效率,降低IT成本。文档还详细说明了ECS实例的创建方式、连接方法及日常管理操作,帮助用户更好地利用ECS服务。
310 2
云计算系列之阿里云ECS服务器管理实战
|
网络协议
keepalived对后端服务器的监测方式实战案例
关于使用keepalived进行后端服务器TCP监测的实战案例,包括配置文件的编辑和keepalived服务的重启,以确保配置生效。
159 1
keepalived对后端服务器的监测方式实战案例

热门文章

最新文章