存储技术与实现
ISCSI技术应用
udev配置管理
IP SAN构建
存储就是根据不丗的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问
一方面它是数据临时或长期驻留的物理媒介
另一方面,它是保证数据完整安全存放的方式或行为
存储就是把这两个方面结合起来,向客户提供一套数据存放解决方案
应用》》文件系统》》存储方式》》存储介质
文件级 远程访问是一个文件夹
块级别 远程访问是一块磁盘
SCSI小型计算机系统接口
Small Computer SystemInterface
作为输入/出接口,主要用于硬盘、光盘等设备
DAS直连式存储
Direct-Attached Storage
将存储设备通过SCSI接口或光纤通道直接连接到计算机上
不能实现数据与其他主机的共享
占用服务器操作系统资源,如CPU、IO等
数据量越大,性能越差
NAS网络技术存储
Network-Attached Storage
通过网络交换机连接存储系统和服务器,建立专门用于数据存储的私有网络
用户通过TCP/IP协议访问数据,采用标准的NFS/HTTP/CIFS等
SAN存储区域网络
Storage Area Network
通过光纤交换机、光纤路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器连接起来,形成专网网络
组成部分
连接设备。如路由器、光纤交换机
接口。如SCSI、FC
通信协议。如IP、SCSI
FC光纤通道
Fibre Channel
一种适合于千兆数据传输的、成熟而安全解决方案
与传统的SCSI相比,FC提供更高的数据传输速率、更远的传输距离、更多的设备连接支持以及更稳定的性能、更简易的安装
FC主要组件
光纤
HBA(主机总线适配置器)
用于连接主机到光纤通道网络
主机中显示为SCSI适配器
减轻IO数据对处理器的负载
支持多路径
FC交换机
提供高速、无阻塞的设备连接
为扩展性提供更多端口
FC交换机交换拓扑
点到点:point-to-point
简单将两个设备互连
忆裁定的环路:arbitrated loop
可多达126个设备共享一段信道或环路
交换式拓扑:switched fabric
所有设备通过光纤交换机互连
ISCSI
Internet SCSI
IETF制定的标准,用于将SCSI数据块映射为以太网数据包
是一种基于IP Storage理论的新型存储技术
将存储行业广泛应用的SCSI接口技术与IP网络相结合
可以IP网络上构建SAN
最好初由Cisco和IBM开发
ISCSI优势
基于IP协议技术的标准
允许网络在TCP/IP协议上传输SCSI命令
相对FC SAN,ISCSI实现的IP SAN 投资更低
解决了传输效率、存储容量、性、开放性、安全性等方面的问题
没有距离限制
ISCSI组成
客户端
ISCSI Initiator:软件实现,成本低、性能较低
ISCSI HBA:硬件实现,性能好,成本较高
存储设备端 ISCSI Target
以太网交换机
ISCSI工作原理
当ISCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令
SCSI命令在ISCSI initiator层被封装成ISCSI消息包并通过TCP/IP传送
设备侧的ISCSI target层解开ISCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行
ISCSI配置步骤
Target端
选择target名称
安装ISCSI target
准备用于target的存储
配置target
启用服务
Initiator端
安装initiator
配置initiator并启动服务
ISCSI target命名
建议采用IQN(ISCSI限定名称)
全称必须全局唯一
ISN格式:iqn.<date_code>.<reversed_domain>.<string>[:<substring>]
命名示例:
iqn.2013-01.com.tarena.tech:sata.rack2.disk1
查询yum仓库 yum list |grep target
安装 yum install –y scsi-target-utils
查看ISCSI target信息 yum info scsi-target-utils
配置临时生产,命令复杂
创建target #tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2016-10.com:disk1
导入本地块设备 #tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --b /dev/vol0/iscsi1
配置ACL #tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.100.100
配置永久生效,配置相对简单
<target iqn.2016-10.com:disk1>
/dev/vol0/iscsi1
initiator-address 192.168.100.100
控制服务 #service tgtd start
设置服务开机运行 #chkconfig tgtd on
查看生效信息 #tgt-admin –s
udev配置管理
设备文件管理方法
devfs
linux早期采用的静态管理方法
/dev目录下有大量静态文件
绝大多数文件没有对应的硬件连接
内核版本2.6.13开始被完全取代
udev
只有连到系统上来的设备才在/dev下创建设备文件
与主、次设备编号无关
为设备提供持久、一致的名字
接入设备事件
内核发现设备并导入设备状态到sysfs
udev接到事件通知
udev创建设备节点或是运行指定程序
udev通知hald守护进程
HAL探测设备信息
HAL创建设备对象结构
HAL通过系统消息总线广播该事件
用户程序也可以监控该事件
udev事件监控 #udevadm monitor
udev
从内核收到添加/移除硬件事件时,udev将会分析:
/etc/udev/rules.d目录中的规则
根据规则中的命令产生哪些输出
/sys目录下信息
基于分析结果,udev会:
处理设备命名
决定要创建哪些设备文件或链接
决定如何设备属性
决定触发哪些事件
配置udev
主配置文件/etc/udev/udev.conf
udev_root:创建设备文件位置,默认为/dev
udev_rules:udev规则文件位置,默认为/etc/udev/rules.d
udev_log:syslog优先级,缺省为err
udev规则
文件位置及格式 /dev/udev/rules.d/<rule_name>.rules
例:75-custom.rules
规则格式
<match-key><op><value>[,..]<assianment-key><op>value[,..]
BUS=="usb",SYSFS{serial}=="20161010111111d11111",NAME="udisk"
udev匹配操作
操作符
==:表示匹配
!=:表示不匹配
匹配示例
ACTION=="add"
KERNEL=="ad[a-z]1"
KERNEL=="scsi"
BUS=="scsi"
DRIVER!="ide-cdrom"
PROGRAM=="myapp.pl",RESULT=="test"
udev赋值操作
操作符
=:指定赋予的值
+=:添加新值
=:指定值,且不允许被替换
示例
NAME="udisk"
SYMLINK+="data1"
OWNER="student"
MODE="0600"
udev规则替换
可以简化或缩写规则
例:KERNEL=="sda*",SYMLINK="iscsi%n"
常用替代变量
%k:内核所识别出来的设备名,如sdb1
%n:设备的内核编号,如sda3中的3
%p:设备路径,如/sys/block/sdb/sdb1
%%:%符号本身
IP SAN概述
SAN是一种将存储设备、连接设备和连接集成在一个高速网络中的技术
早期的SAN采用的是光纤通道(FC,Fiber Channel)技术
到了ISCSI协议出现以后,为了区分,业界就把SAN分为FC SAN和IP SAN
借助IP SAN,基于ISCSI流高速交换平台,运行带内(in-band)虚拟化存储管理软件,将各种存储设备(包括磁盘、磁带等)联接起来
IP SAN优点
共享了昂贵的存储资源,提高了存储设备的利用率
集中化的虚拟存储池方式所提供的存储资源分配与管理,节省了传统的直连式存储设备多路并行管理费用
由于支持存储子系统的IP SAN存储区域网与通信子系统构建的应用网是丗一种网络架构,管理人员可以将原来在应用网络通信技术方面积累的知识和经验,充分应用于存储子系统
FreeNAS
FreeNAS是IP SAN的一种解决方案
FreeNAS是一套免费的NAS服务器,它能将一部普通PC变成网络存储服务器
该软件基于FreeBSD,Samba及PHP
支持CSFI(samba),FTP,NFS,SoftwareRAID(0,1,5)及web界面的设定工具
用户可通过Windows、Macs、FTP、SSH及网络文件系统(NFS)来访问存储服务器
FreeNAS配置步骤
下载镜像并安装
配置FreeNAS的网络参数
通过WEB页面管理FreeNAS
设备管理员密码
创建用户
添加数据盘
配置网络共享服务
客户端连接验证
准备共享存储
文件共享存储
文件系统格式
UFS:Unix文件系统。不支持卷管理、RAID等
ZFS:Zettabyte文件系统,最初由SUN公司为solaris 10开发。拥有自优化,自动校验数据完整性,存储池/卷系统易管理等诸多优点
FreeNAS支持的共享方法
CIFS/SAMBA
NFS
AFP:Apple Filling Protocol
实验
配置ISCSI服务
yum install -y scsi-target-utils
service tgtd start
创建target
# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2016.10.com.test.www.iscsi
为target导入本地磁盘 将/dev/myvg/iscsi lv导入
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/myvg/iscsi
配置ACL
# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.100.0/24
将三条命令加入开机启动文件
客户端安装软件
# yum -y install iscsi-initiator-utils
客户端探测服务器共享
iscsiadm -m node -T iqn.2016.10.com.test.www:iscsi -p 192.168.100.100:3260 -l
iscsiadm -m node -T iqn.2016.10.com.test.www:iscsi2 -p 192.168.100.100:3260-l
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary 1 500
parted /dev/sdc mklabel gpt
parted /dev/sdc mkpart primary 1 200
每一次需格式化
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdc1
编写udev规则
vim /etc/udev/rules.d/70-usb.rules
SUBSYSTEM=="block",ENV{DEVTYPE}="disk",KERNEL=="sdb",ENV{ID_VENDOR}=="TOSHIBA",SYMLINK="udisk",RUN+="/usr/bin/wall udisk plugged in"
SUBSYSTEM=="block",ACTION=="add",KERNEL=="sdb[0-9]",ENV{ID_VENDOR_ID}=="0930",ENV{DEVTYPE}=="partition",NAME="udisk%n"