linux杂谈(十七):iscsi存储分离技术
1.iscsi简介
iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。
虽然 iSCSI 可以与任意类型的 SCSI 设备进行通信,系统管理员几乎总是使用它来连接服务器计算机 (例如,数据库服务器) 和磁盘卷上存储阵列。 使用iSCSI SAN 的目的通常有以下两个:
存储整合 公司希望将不同的存储资源从分散在网络上的服务器移动到统一的位置(常常是数据中心); 这可以让存储的分配变得更为有效。 SAN 环境中的服务器无需任何更改硬件或电缆连接就可以得到新分配的磁盘卷。
灾难恢复 公司希望把存储资源从一个数据中心镜像到另一个远程的数据中心上,后者在出现长时间停电的情况下可以用作热备份。 特别是,iSCSI SAN 使我们只需要用最小的配置更改就可以在 WAN 上面迁移整个磁盘阵列,实质上就是,把存储变成了“可路由的”,就像普通的网络通信一样。
这里我们可以举一个例子,阿里的服务器有很多账户,如果账户和密码实在单个服务器上,那么当这个服务器挂掉之后,信息丢失。那对阿里和用户都是灾难性的结果。所以使用网络设备,而不使用服务器本地的硬盘:
就像是图中所描述的那样,客户所访问的只是磁盘盘柜中的设备,并不是提供服务的服务器。盘柜由单独的服务器管理,那个服务器只提供像外分配设本的任务,这样就实现了存储分离技术,让各个服务器的功能单一化,让整个架构更加的安全。
2.iscsi的实现
了解了iscsi的基本原理之后,我们要实现一个iscsi的模型。
(1)准备工作
要有两个主机,一个提供网络设备(相当于上图盘柜的效果),另外一个使用网络设备(相当于UNIX server)。
(2)正式配置
1.先来看服务端:
1).首先要制作一个向外共享的设备;
2).安装iscsi服务端;
3).设置好服务配置后开放服务;
1).制作设备:
生成完了之后我们执行以下操作,第二个执行两遍:
2.安装iscsi服务端:
3).设置主配置文件:
把设备共享出去,服务器名为westos.example.com .
开启服务:
2.客户端
这时我们的服务端已经共享出去了一块设备,客户端就是要获取它,首先我们来安装iscsi的客户端:
很幸运的是我们已经安装了。
寻找指定ip的共享网络设备,可以看到我们已经找到了:
开启这个网络设备:
开启成功!
我们对这个服务器当前的可用设备列出,发现除了本地的/dev/vda设备外,还有一个网络设备/dev/sda。这个之前是没有的,是我们westos.example.com共享出来的网络设备,我们可以对它操作,真正改变的是westos.example.com里边的设备,当这个服务器挂掉后,共享出来设备的服务器还保留着数据,这就非常安全。不影响业务的进行。
我们可以像使用本地硬盘一样操作它,可以用它生成新的设备,并且挂载使用。
然后可以格式化挂载:
如果要永久挂载,需要写入文件/etc/fstab:
注意:这里要注意一个细节,defaults后要加_netdev, 否则是无法使用的。
3.上面讲到的是如何使用这个网络设备,那么我们在不想使用它的时候也要进行一系列的操作:
1)首先要卸载,如果/etc/fstab写入的话要删除;
2)将设备退出iscsi;
1)先卸载:
2)将设备退出iscsi:
卸载掉设备:
删除后退出,发现该网络设备确实不见了:
总结:
上面的一整套就是iscsi存储分离的最基本的设置,想想这个思想会很广泛的应用