linux杂谈(十七):iscsi存储分离技术
1.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存储分离的最主要的设置,想想这个思想会非常广泛的应用,在以后的讲到集群和负载均衡的时候还会遇见它。到时候再解说。今天两更还不错!
linux杂谈(十七):iscsi存储分离技术的更多相关文章
- linux下挂载ISCSI存储设备
安装 首先要在存储设备上做好RAID,设置好iSCSI 目标方(target). 这里主要说明iSCSI initiator的安装. 不同的操作系统对应各自的iSCSI initiator,以Redh ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 CentOS6.9系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 Debian9.5系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux FC/iSCSI存储设备管理系列(一):Linux系统设备驱动入门
Linux FC/iSCSI存储设备管理系列(一):Linux系统设备驱动入门 转载请在文首保留原文出处:EMC中文支持论坛 - https://community.emc.com/go/chines ...
- Linux下搭建iSCSI共享存储
转至:https://www.linuxidc.com/Linux/2016-09/135655.htm Linux下搭建iSCSI共享存储 拓扑: 实验步骤: ------------------- ...
- 阿里云PolarDB及其共享存储PolarFS技术实现分析(上)
PolarDB是阿里云基于MySQL推出的云原生数据库(Cloud Native Database)产品,通过将数据库中计算和存储分离,多个计算节点访问同一份存储数据的方式来解决目前MySQL数据库存 ...
- 基于使用ISCSI存储的ibmmq通过heartbeat实现HA方案以及碰到的问题总结
一.背景 ibmmq是一种传统架构的mq产品,运行稳定,有其自身优点,但在高可用(HA)这一块需要使用公司根据自身需求选用高可用(HA)产品,但由于市面HA商业产品较贵,所以使用linux操作系统级的 ...
随机推荐
- Javascript 匀速运动——应用案例:网站常用功能分享到
网站上会经常用到Javascript 中的运动,这次与大家分享一下一些运动的基本应用 . 方便大家在开发中能够直接使用. 代码简单易懂,适用于初学者.最后会一步一步整理出一套自己的运动框架. 应用案例 ...
- asp.net mvc 注册中的邮箱激活功能实现(一)
基本流程图 注册页面就不再写出,现在将发送邮件的代码粘贴出来 public ActionResult SendEmial() { ; string validataCode = System.Guid ...
- 数据库中字段类型对应C#中的数据类型
数据库中字段类型对应C#中的数据类型:数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean char ...
- 21. 无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务”
无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务” 原因:调用存储过程的方式有问题,必须用JDBC方式调用存储过程才可以正常 ...
- Python调用C/C++的种种方法
Python调用C/C++的种种方法 2010-12-07 09:59 28433人阅读 评论(1) 收藏 Python是解释性语言, 底层就是用c实现的, 所以用python调用C是很容易的, 下面 ...
- Android开发实例之闹钟提醒
本实例通过TimePickerDialog时间选择对话框让用户设置闹钟.并通过AlarmManager全局定时器在指定的时间启动闹钟Activity . 程序执行效果图: 实例代码: package ...
- c++打印环境变量
直接上代码:cpp版本 #include <stdio.h> #include <stdlib.h> #include <string.h> extern char ...
- WPF datagrid 初学
<Window x:Class="WpfDemo.WinDataGrid" xmlns="http://schemas.microsoft.com/winfx/20 ...
- SQL Server索引进阶:第十三级,插入,更新,删除
在第十级到十二级中,我们看了索引的内部结构,以及改变结构造成的影响.在本文中,继续查看Insert,update,delete和merge造成的影响.首先,我们单独看一下这四个命令. 插入INSERT ...
- java 对象数组定义
下面代码实现了定义一个数组对象 public class Student { private String username; private int num; public Student(Stri ...