PUB:20141217 Create Centralized Secure Storage using iSCSI Target on RHEL or CentOS or Fedora Part -I

@geekpi
This commit is contained in:
wxy 2015-03-02 14:28:18 +08:00
parent fc13be47c5
commit ba7260c9d7

View File

@ -1,46 +1,47 @@
在RHEL/CentOS/Fedora上使用iSCSI Target创建集中式安全存储 - 第一部分 使用iSCSI Target创建集中式安全存储
================================================================================ ================================================================================
**iSCSI** 是一种块级别协议用于通过TCP/IP网络共享**原始存储设备**可以用已经存在的IP和以太网如网卡、交换机、路由器等通过iSCSI协议共享和访问存储。iSCSI target是一种远程iSCSI服务器或者taget上的远程硬盘。 **iSCSI** 是一种块级别协议用于通过TCP/IP网络共享**原始存储设备**可以用已经存在的IP和以太网如网卡、交换机、路由器等通过iSCSI协议共享和访问存储。iSCSI target是一种由远程iSCSI服务器target提供的远程硬盘。
![Install iSCSI Target in Linux](http://www.tecmint.com/wp-content/uploads/2014/07/Install-iSCSI-Target-in-Linux.jpg) ![Install iSCSI Target in Linux](http://www.tecmint.com/wp-content/uploads/2014/07/Install-iSCSI-Target-in-Linux.jpg)
在Linux中安装iSCSI Target
我们不需要在客户端为了稳定的连接和性能而占用很大的资源。iSCSI服务器称为Target它共享存储。iSCSI客户端称为Initiator它访问Target服务器行的存储。市场中有用于大型存储服务如SAN的iSCSI适配器。 *在Linux中安装iSCSI Target*
我们不需要占用很大的资源就可以为客户端提供稳定的连接和性能。iSCSI服务器称为“Target目标器它提供服务器上的存储共享。iSCSI客户端称为“Initiator发起程序它访问Target服务器共享的存储。市场中有卖的用于大型存储服务如SAN的iSCSI适配器。
**我们为什么要在大型存储领域中使用iSCSI适配器** **我们为什么要在大型存储领域中使用iSCSI适配器**
以太网适配器NIC被设计用于在系统、服务器和存储设备如NAS间传输分组数据它不适合在Internet中传输块级数据。 以太网适配器NIC被设计用于在系统、服务器和存储设备如NAS间传输分组数据它不适合在Internet中传输块级数据。
### iSCSI Target的功能 ### ### iSCSI Target的功能 ###
- 可以在一台机器上运行几个iSCSI target - 可以在一台机器上运行几个iSCSI target
- 一台机器的多个iSCSI target可以在iSCSI中访问 - 一台机器可以提供多个iSCSI target用于iSCSI SAN访问
- 一个target就是一块存储并且可以通过网络被初始化器(客户端)访问 - 一个target就是一块存储并且可以通过网络被发起程序(客户端)访问
- 把这些存储汇聚在一起让它们在网络中可以访问的是iSCSI LUN逻辑单元号 - 把这些存储汇聚在一起让它们在网络中可以访问的是iSCSI LUN逻辑单元号
- iSCSI支持在同一个会话中含有多个连接 - iSCSI支持在同一个会话中使用多个连接
- iSCSI初始化器在网络中发现目标接着用LUN验证并登录这样就可以本地访问远程存储。 - iSCSI发起程序在网络中发现目标接着用LUN验证并登录这样就可以本地访问远程存储。
- 我们了一在本地挂载的LUN上安装任何操作系统就像我们安装我们本地的操作系统一样。 - 我们可以在本地挂载的LUN上安装任何操作系统就像我们安装我们本地的操作系统一样。
### 为什么需要iSCSI ### ### 为什么需要iSCSI ###
在虚拟化中我们需要存储拥有高度的冗余性、稳定性iSCSI以低成本的方式提供了这些特性。与使用光纤通道的SAN比起来我们可以使用已经存在的设备比如NIC、以太网交换机等建造一个低成本的SAN。 在虚拟化中我们需要存储拥有高度的冗余性、稳定性iSCSI以低成本的方式提供了这些特性。与使用光纤通道的SAN比起来我们可以使用已经存在的设备比如NIC、以太网交换机等建造一个低成本的SAN。
现在我开始使用iSCSI Target安装并配置安全存储。本篇中我们遵循下面的步骤 现在我开始使用iSCSI Target安装并配置安全存储。本篇中我们遵循下面的步骤
- 我们需要隔离一个系统来设置iSCSI Target服务器和初始化器(客户端)。 - 我们需要隔离一个系统来设置iSCSI Target服务器和发起程序(客户端)。
- 可以在大型存储环境中添加多个硬盘,但是我们除了基本的安装盘之外只使用一个额外的驱动器。 - 在大型存储环境中可以添加多个硬盘,但是这里我们除了基本的安装盘之外只使用一个额外的驱动器。
- 现在我们只使用2块硬盘一个用于基本的服务器安装另外一个用于存储LUN这个我们会在这个系列的第二篇描述。 - 这里我们只使用了2块硬盘一个用于基本的服务器安装另外一个用于存储LUN这个我们会在这个系列的第二篇描述。
#### 主服务器设置 #### #### 主服务器设置 ####
- 操作系统 CentOS release 6.5 (最终版) - 操作系统 CentOS 6.5 (Final)
- iSCSI Target IP 192.168.0.200 - iSCSI Target IP 192.168.0.200
- 使用的端口 : TCP 860, 3260 - 使用的端口 : TCP 860, 3260
- 配置文件 : /etc/tgt/targets.conf - 配置文件 : /etc/tgt/targets.conf
## 安装 iSCSI Target ## ## 安装 iSCSI Target ##
打开终端并使用yum命令来搜索我们需要在iscsi target上安装的包名。 打开终端并使用yum命令来搜索需要在iscsi target上安装的包名。
# yum search iscsi # yum search iscsi
@ -52,21 +53,21 @@
lsscsi.x86_64 : List SCSI devices (or hosts) and associated information lsscsi.x86_64 : List SCSI devices (or hosts) and associated information
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs scsi-target-utils.x86_64 : The SCSI target daemon and utility programs
We got the search result as above, choose the **Target** package and install to play around. 你会的到上面的那些结果,选择**Target**包来安装。
你会的到上面的那些结果,选择**Target**包来安装
# yum install scsi-target-utils -y # yum install scsi-target-utils -y
![Install iSCSI Utils](http://www.tecmint.com/wp-content/uploads/2014/07/Install-iSCSI-in-Linux.jpg) ![Install iSCSI Utils](http://www.tecmint.com/wp-content/uploads/2014/07/Install-iSCSI-in-Linux.jpg)
安装iSCSI工具
列出安装的包来了解默认的配置、服务和man页面的位置 *安装iSCSI工具*
列出安装的包里面的内容来了解默认的配置、服务和man页面的位置。
# rpm -ql scsi-target-utils.x86_64 # rpm -ql scsi-target-utils.x86_64
![List All iSCSI Files](http://www.tecmint.com/wp-content/uploads/2014/07/List-All-ISCSI-Files.jpg) ![List All iSCSI Files](http://www.tecmint.com/wp-content/uploads/2014/07/List-All-ISCSI-Files.jpg)
列出所有的iSCSI文件 *列出所有的iSCSI包里面的文件*
让我们启动iSCSI服务并检查服务运行的状态iSCSI的服务名是**tgtd**。 让我们启动iSCSI服务并检查服务运行的状态iSCSI的服务名是**tgtd**。
@ -75,7 +76,7 @@ We got the search result as above, choose the **Target** package and install to
![Start iSCSI Service](http://www.tecmint.com/wp-content/uploads/2014/07/Start-iSCSI-Service.jpg) ![Start iSCSI Service](http://www.tecmint.com/wp-content/uploads/2014/07/Start-iSCSI-Service.jpg)
启动iSCSI服务 *启动iSCSI服务*
现在我们需要配置开机自动启动。 现在我们需要配置开机自动启动。
@ -87,27 +88,27 @@ We got the search result as above, choose the **Target** package and install to
![Enable iSCSI on Startup](http://www.tecmint.com/wp-content/uploads/2014/07/Enable-iSCSI-on-Startup.jpg) ![Enable iSCSI on Startup](http://www.tecmint.com/wp-content/uploads/2014/07/Enable-iSCSI-on-Startup.jpg)
开机启动iSCSI *开机启动iSCSI*
现在使用**tgtadm**来列出在我们的服务器上已经配置了哪些target和LUN。 现在使用**tgtadm**来列出在我们的服务器上已经配置了哪些target和LUN。
# tgtadm --mode target --op show # tgtadm --mode target --op show
**tgtd**已经安装并在运行了,但是上面的命令没有**输出**因为我们还没有在Target服务器上定义LUN。要查看手册运行**man**‘命令。 **tgtd**已经安装并在运行了,但是上面的命令没有**输出**因为我们还没有在Target服务器上定义LUN。要查看手册可以运行‘**man**‘命令。
# man tgtadm # man tgtadm
![iSCSI Man Pages](http://www.tecmint.com/wp-content/uploads/2014/07/iSCSI-Man-Pages.jpg) ![iSCSI Man Pages](http://www.tecmint.com/wp-content/uploads/2014/07/iSCSI-Man-Pages.jpg)
iSCSI Man 页面 *iSCSI Man 页面*
最终我们需要为iSCSI添加iptable规则如果你的target服务器上存在iptable的话。首先使用netstat命令找出iscsi target的端口号target总是监听TCP端口3260。 如果你的target服务器上有iptable的话那么我们需要为iSCSI添加iptable规则。首先使用netstat命令找出iscsi target的端口号target总是监听TCP端口3260。
# netstat -tulnp | grep tgtd # netstat -tulnp | grep tgtd
![Find iSCSI Port](http://www.tecmint.com/wp-content/uploads/2014/07/Find-iSCSI-Port.jpg) ![Find iSCSI Port](http://www.tecmint.com/wp-content/uploads/2014/07/Find-iSCSI-Port.jpg)
找出iSCSI端口 *找出iSCSI端口*
下面加入如下规则让iptable允许广播iSCSI target发现包。 下面加入如下规则让iptable允许广播iSCSI target发现包。
@ -116,24 +117,24 @@ iSCSI Man 页面
![Open iSCSI Ports](http://www.tecmint.com/wp-content/uploads/2014/07/Open-iSCSI-Ports.jpg) ![Open iSCSI Ports](http://www.tecmint.com/wp-content/uploads/2014/07/Open-iSCSI-Ports.jpg)
打开iSCSI端口 *打开iSCSI端口*
![Add iSCSI Ports to Iptables](http://www.tecmint.com/wp-content/uploads/2014/07/Add-iSCSI-Ports-to-Iptables.jpg) ![Add iSCSI Ports to Iptables](http://www.tecmint.com/wp-content/uploads/2014/07/Add-iSCSI-Ports-to-Iptables.jpg)
添加iSCSI端口到iptable中 *添加iSCSI端口到iptable中*
**注意** 规则可能根据你的 **默认链策略**而不同。接着保存iptable并重启。 **注意** 规则可能根据你的 **默认链策略**而不同。接着保存iptable并重启该服务
# iptables-save # iptables-save
# /etc/init.d/iptables restart # /etc/init.d/iptables restart
![Restart iptables](http://www.tecmint.com/wp-content/uploads/2014/07/Restart-iptables.jpg) ![Restart iptables](http://www.tecmint.com/wp-content/uploads/2014/07/Restart-iptables.jpg)
重启iptable *重启iptable*
现在我们已经部署了一个target服务器来共享LUN给通过TCP/IP认证的初始化器。这也适用于从小到大规模的生产环境。 现在我们已经部署了一个target服务器来共享LUN给通过TCP/IP认证的发起程序。这也适用于从小到大规模的生产环境。
在我的下篇文章中,我会展示如何[在Target服务器中使用LVM创建LUN][1]并且如何在客户端中共享LUN在此之前请继续关注TecMint获取更多的更新并且不要忘记留下有价值的评论。 在我的下篇文章中,我会展示如何[在Target服务器中使用LVM创建LUN][1]并且如何在客户端中共享LUN不要忘记留下有价值的评论。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -141,7 +142,7 @@ via: http://www.tecmint.com/create-centralized-secure-storage-using-iscsi-target
作者:[Babin Lonston][a] 作者:[Babin Lonston][a]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出