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