集群与存储

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群与存储相关的知识,希望对你有一定的参考价值。

集群

iscsi 共享
数据完整性,安全性、协议
存储是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问一方面它是数据临时或长期驻留的物理媒介,另一方面,它是保证数据完整安全存放的方式或行为,存储就是把这两个方面结合起来,向客户提供一套数据存放解放方案。
存储技术分类:
scsi小型计算机系统接口:作为输入/输出接口,请要用于硬盘、光盘、磁带机等设备。
DAN直连式存储
共享存储:
1.NAS技术:数据存储服务器,大小是固定的。通过相应的网络服务共享出来,可以通过http,cifs,nfs等网络共享。用户通过TCP/IP协议访问数据。
协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为在网络上传输的数据包的格式。
协议往往分成几个层次进行定义,分层定义是为了使某一层协议的改变不影响其他层次的协议。
网络协议,也可简称协议,通常由三要素组成:
(1)语法:即数据与控制信息的结构或格式;
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)时序(同步),即事件实现顺序的详细说明。
2.SAN技术:存储区域网络,通过传输介质传输。可以通过光纤,双绞线等,不受距离的限制。直接通过网线连接。数据是被封装成ip包。
网络传输介质是指在网络中传输信息的载体,常用的传输介质分为有线传输介质和无线传输介质两大类。不同的传输介质,其特性也各不相同,它们不同的特性对网络中数据通信质量和通信速度有较大影响。
有线传输介质是指在两个通信设备之间实现的物理连接部分,它能将信号从一方传输到另一方,有线传输介质主要有双绞线、同轴电缆和光纤。双绞线和同轴电缆传输电信号,光纤传输光信号。
无线传输的介质有:无线电波、红外线、微波、卫星和激光。在局域网中,通常只使用无线电波和红外线作为传输介质。无线传输介质通常用于广域互联网的广域链路的连接。
无线传输的优点在于安装、移动以及变更都较容易,不会受到环境的限制。但信号在传输过程中容易受到干扰和被窃取,且初期的安装费用较高。
3.iscsi技术:

iscsi技术应用

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类:类是一个模板,它描述一类对象的行为和状态。
注:配置iscsi前要关闭防火墙和NetworkManager
json轻量级文本数据交换格式
JSON 语法规则
JSON 语法是 javascript 对象表示法语法的子集。
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"firstName" : "John"
这很容易理解,等价于这条 JavaScript 语句:
firstName = "John"
JSON 值
JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
JSON 对象
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
这一点也容易理解,与这条 JavaScript 语句等价:
firstName = "John"
lastName = "Doe"
JSON 数组
JSON 数组在方括号中书写:
数组可包含多个对象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。
JSON 使用 JavaScript 语法
因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:
例子
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
可以像这样访问 JavaScript 对象数组中的第一项:
employees[0].lastName;
返回的内容是:
Gates
可以像这样修改数据:
employees[0].lastName = "Jobs";
JSON 文件
JSON 文件的文件类型是 ".json"
JSON 文本的 MIME 类型是 "application/json"

配置iscsi
步骤一:安装iSCSI服务器软件

1)使用yum安装targetcli软件包

[[email protected] ~]# yum  -y  install  targetcli
.. ..
[[email protected] ~]# yum info targetcli

步骤二:通过命令行配置iSCSI服务
2)使用targetcli定义后端存储

[[email protected] ~]# targetcli
/> ls
/> backstores/block create store /dev/vdb1
备注:store为任意名称

3)创建iqn对象

/> /iscsi create iqn.2018-01.cn.tedu:server1

4) 授权客户机访问

/> iscsi/iqn.2018-01.cn.tedu:server1/tpg1/acls create iqn.2018-01.cn.tedu:client1

5) 绑定存储

/>iscsi/iqn.2018-01.cn.tedu:server1/tpg1/luns create /backstores/block/iscsi_store 

6) 存储绑定服务监听的地址,并保存配置

/> iscsi/iqn.2018-01.cn.tedu:server1/tpg1/portals/ create 0.0.0.0
/> saveconfig 
/> exit

步骤三:服务管理

1)启动服务

[[email protected] ~]# systemctl  {start|restart|stop|status} target
[[email protected] ~]# systemctl enable target

2)查看端口信息

[[email protected] ~]# ss -tlnp | grep :3260

3)关闭防火墙与SELinux

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0

步骤四:客户端访问

1)客户端安装软件并启动服务

[[email protected] ~]# yum -y install iscsi-initiator-utils
[[email protected] ~]# systemctl restrt iscsi

2)设置本机的iqn名称

[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2018-01.cn.tedu:client1
注意:必须跟服务器上配置的ACL一致!

3)发现远程target存储

提示:参考man iscsiadm!

[[email protected] ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.5 –discover
[[email protected] ~]# iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:server1 --portal 192.168.4.5:3260 --login

3)客户端挂载iSCSI共享

[[email protected] ~]# systemctl restart iscsi 
[[email protected] ~]# lsblk

4)分区、格式化、挂载

[[email protected] ~]# parted /dev/sdb mklabel gpt
[[email protected] ~]# parted /dev/sdb mkpart primary 1 800
[[email protected] ~]# mount /dev/sdb1  /mnt

man iscsiadm
Discover targets at a given IP address:

        iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.10 --discover

发现设备
Login, must use a node record id found by the discovery:

        iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login=-l

登入设备
Logout:

        iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout=-u

登出设备相当于卸载

设备文件管理方法

devfs
linux 早期采用的静态管理方法
/dev目录下有大量静态文件
内核版本2.6.13开始被完全取代
udev
只有连到系统上来的设备才在/dev下创建设备文件
与主、次设备编号无关
为设备提供持久、一致的名字

udev
显示系统的设备信息
udevadm monitor --property
如何获取已经设备的硬件设备的信息
iqn
如何编写udev规则配置文件
vim /etc/udev/rules.d/名字.rules
参数 名
vim /etc/udev/rules.d/1-99之间的数字-名字.rules

SUBSYSTEM=="block",ATTR{size}=="10481664",大小ATTRS{model}=="diskb ",ATTRS{vendor}=="LIO-ORG "厂商

网卡配置文件
/etc/sysconfig/network-scripts/

TYPE=Ethernet
NAME=eth1
DEVICE=eth1
ONBOOT=no
IPADDR=192.168.2.51

多路径

以上是关于集群与存储的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

如何将 r ggplot 图存储为 html 代码片段

sql 这些代码片段将演示如何逐步使用PolyBase。你应该有一个blob存储和存储秘密方便

学习笔记,集群与存储

集群与存储

如何利用redis来进行分布式集群系统的限流设计