-
Linux
双机
iSCSI
Target
实现方案
本文介绍了一
种通过开源软件模拟存储设备的实现方案。
存储设备最重要的特性是数据
的安全性、
系统的可靠性,
它通过
Raid1
、
Raid5
等方案实
现数据安全性,
使用冗余控制卡、
连接器等措施实现系统的可靠
性。目前在
Windows
、
Linu
x
系统环境中都存在各种各样可以
模拟
iSCSI
Target
的软件,但是由于其系统、软件本身
的可靠性很难用于生产环境。本方案
通过
Linux
上双机控制软件、数据同步软件、
iSCSITarget
软件的配合使用实现一种较可靠的
软件数据存储方案。
原理说明:
DRBD(Distributed Replicated Block Devic
e)
是一个用软件实现的、无共享的、服务器之间
镜像块设备内
容的存储复制解决方案。
能将数据在服务器之间实时、
透明传输
,
保证数据的
同步。
DRBD
的核心功能通过
Linux
的内核实现,其性能
接近系统的
IO
栈。
Heartbeat
是一个高可用集群系统解决方案,它能管理集群中的资源(
磁盘、
IP
、服务
等)
,实时监控集群中的各种资源,能通过重新挂载、重启服务、故障转移等措施保证集群
< br>中服务的高可用。
TGT
是<
/p>
Linux
环境上用于构建
iSCSI
Target
的服务,
它配置简单,
应
用广泛。
能将普通
Linux
机器模拟
成一台
iSCSI
的存储设备。
本方案中配合使用上述三种软件,完成软件
iSCSI
Target
存储方案。
系统可靠性
可分为:
主机设备级、组网网元级、应用系统级,
该方案中暂不
考虑主机设
备级和组网级的故障。主要考虑到网元级、应用系统级的故障。系统中:
p>
1.
用
Heartbeat
软件管理两台
Linux
机器组成双机,
并监控其浮动
IP
p>
、
硬盘、
服务等资源。
2.
DRBD
网元采用热双机方式部署,
DRBD
管理两台
Linux
机器上的硬盘形成
Raid1
,通过
DRBD
存储文件时,其数据会实时在
两台机器的硬盘上存储,以保证数据安全性。
3.
TGT
网元采用冷双机方式部署,
TGT
将本地磁盘上的数据虚拟为存
储,
TGT
服务依赖浮
动
IP
和
DRBD
的主节点,
其中资源之间的依赖关系由
Heartbeat
统一管理。
p>
软件安装
软硬件资源说明
Linux
系统采用
Ubuntu12.04
,
上述的其他软件都采用
Ubuntu
源中自带版本
,
两台
Ubuntu
配置一样,运行上
述三种软件所需系统资源很少,
2
核
5
12M
内存足够,但要求系统配置
2
块
磁盘(同一块磁盘的两个分区也行,但不推荐)
,其中一块用于安装
Ubuntu
及上述三款
软件,
1
0G
足够。另一块磁盘配合另一台机器组成
Raid1
存储数据,可根据实际情况自行分
配。
两台机器
上用于存放数据的磁盘容量需保证一致。
在实际部署时如果
Ub
untu
运行在
EXSI
或者
OpenStack
等虚拟机环境中时,
需确保
这两台机器分别运行在不同的宿主机上,
否则数
据安全性将变为
空谈。
注意:不要使用
Ubuntu
14.04
,因为该发行版所带
heartbeat
中的
pacemaker(
版本为
1.1.10)
模块存在严重
bug
< br>,在启用
heartbeatv2
模式时将导致系统反复
重启。
实验环境说明
实验环境在
EXSI
虚拟机中运行,其主机名、
IP
、磁盘资源配置如下:
机器名
IP
浮动
IP
系统磁盘
数据磁盘
iSCSI1
172.24.17.211
/dev/sda
/dev/sdb
172.24.17.210
iSCSI2
172.24.17.212
/dev/sda
/dev/sdb
在这两台机器的
hosts
文件中分别添加对方机器名和
p>
IP
的对应关系,
以保证双机能互相
解析主机名。
安装、配置
DRBD
Ubuntu
系统安装完成后,两台机器分别通过其
a
ptitude
工具自动安装
drbd8-utils
。
通过系统
fdis
k
别对
/dev/sdb
磁盘进行分区
操作,新建
/dev/sdb1
。
<
/p>
DRBD
的配置文件为:
/etc/
p>
。
该配置文件没有具体的配置信息。
具体配
置
文件为
/etc/drbd.d/
目
录下的全局配置文件
global_
及相关的资源配置文
件。配置
global_
内容如下:
global {
usage-
count no;
#
不统计使用次数
}
common {
protocol C;
#
使用最可靠的数据同步方式,确保
对方数据同步磁盘成功
startup {
}
disk {
on-io-error detach;
#
发生错误时,进行分离操作
}
net {
#
配置
DRBD
两个节点之间的鉴权信息
cram-hmac-alg sha1;
shared-secret
}
syncer {
rate 60M;
}
}
#
< br>数据同步时最大带宽限制,可影响
drbd
的
IO
速度
注
:
上述配
置虽简单,
但功能测试成功,
不要随意增加配置项,
尤其是超时相关的配置项,
否则会导致
Heart
beat
双机切换失败
(
除非你明确知
道相关配置项对系统的影响
);
global_
新建一个资源配置文件:
/etc/drbd.d/
resource
iscsiserver
{
meta-disk internal;
device
/dev/drbd0;
on iSCSI1 {
address 172.24.17.211:7789;
disk /dev/sdb1;
}
on iSCSI2 {
address
172.24.17.212:7789;
disk /dev/sdb1;
}
}
< br>将上述两个配置文件分别拷贝到
iSCSI1
和
iSCSI2
机器,分别在两台机器上运行:
1.
drbdadm
create-md
iscsiserver
,在两台机器上
创建
iscsiserver
资源,资源名
称必须和
/etc/drbd.d/*.res
配置文件中
设定的一致。
2.
service drbd start
,在两台机器上启动<
/p>
drbd
。
在其中任意一台机器上运行
drbd-
overview
可以看到,两块磁盘的数据块开始同步:
3.
磁盘数据块同步完成后在某一主机上运行
drbdadm
--
--overwrite-data-of-peer
primary all
在该机器上激活
/dev/drbd0
块设备。
4.
通过
m
kfs
工具对
/dev/drbd0
磁
盘格式化操作
(
不要进行分区操作
)<
/p>
,根据提示可能
需要重启系统。
注意:
运行
drbdadmsecondar
y all
可以去激活
/dev/drbd0
(
p>
此命令将
drbd0
切换到备
用机上
)
在一台机器上激活
/dev/drbd0
并挂载后写入某文件,
卸载去激活后,
在另一台机器上激
活挂载后,如果能看到相同的文件,则证明<
/p>
drbd
配置成功。
安装、配置
TGT
< br>两台机器分别通过系统自带的
aptitude
工具自动
安装
tgt
。
tgt
服务的配置文件是
/etc/tgt/
,
该配置文件采用
xml
格式
,
在
iSCSI1
和
< br>iSCSI2
上该配置文件需保证一致;
include /etc/tgt/conf.d/*.conf
#
配置
p>
iSCSI
的
portal
backing-store /iSCSIdata/ <
/p>
#
配置该
portal
< br>下的
lun
信息,该文件大小即为
lun
大小
incominguser Spring Spring1234
< br>#target
对
initiator
< br>的鉴权
backing-store
/iSCSIdata/
incominguser Spring
Spring1234
#
该
portal
下存在三个
lun
backing-store /iSCSIdata/
backing-store /iSCSIdata/
backing-store /iSCSIdata/
1.
2.
3.
4.
5.
在
iSCSI1
和
iSCSI2
上分别新建
/iS
CSIdata
目,在某一台机器上运:
drbdadm -- --overwrite-data-of-peer
primary all
激活
drbd
主机,出现
/dev/drbd0
块
设
备
运行
mount
/dev/drbd0 /iSCSIdata
,将
/dev/
drbd0
挂载到
/iSCSIdata
目录
运行
dd
if=/dev/zero of=/iSCSIdata/ count=2 bs=1G
命令在
/iSCSIdata
中分别
新建一个所需的
lun
文件;
运行
service tgt start
启动
tgt
服务;
安装、配置
Heartbeat
p>
两台机器分别通过系统自带的
aptitude
工具自动安装
heartbeat
。
Heartbeat
存在
v1
p>
和
v2
两种模式,
v1
模式用于较粗糙的监控,只有主机宕机,或者心
跳断线超时
才会触发资源组的切换。
无法对资源组内每个资源如
IP
、
文件系统、
服务进程的
单独监控,
v2
模式中采用
CRM
(Cluster Resource
Monitor)
细致地对每个资源进行监控。
采用
v2
模式时,
Hear
tbeat
有如下三个配置文件:
1.
/etc/ha.d/
#
用于配置集群中的节点,心跳端口等基础配置
2.
/etc/ha.d/authkeys
#
配置双机之间的相互鉴权信息
3.
/var/lib/heartbeat/crm/
#hea
rtbeat
所监控的资源、资源组、监控脚本、监
控间隙等操
作,是
Heartbeat
的核心配置项
说明:
/etc/ha.d/haresources
p>
为
Heartbeat
在
< br>v1
模式下的配置项,使用
v2
模式时该配置文
件无效。
在
/usr/share/doc/heartbeat
目录里找到
、
haresources
< br>、
authkeys
三个配置文件的模
< br>板,将其拷贝解压到
/etc/ha.d
目录下,修改配
置之;
/etc/ha.d/
配置文
件有效信息:
logfile
/var/log/ha-log
#
日志文件路径
logfacility local0
#
日志等级
keepalive 2
#
双机心跳检测时间间隔
deadtime 30
#
双机心跳超时判断失败时间
warntime 10
#
双机心跳超时警告时间
initdead 90
#
系统启动
后
90s
开始双机心跳
udpport
694
#
双机心跳所用端口,须在
ucast
之前配置<
/p>
ucast eth0 172.24.17.211
#
双机对端节点的
IP
地址
auto_failback off
#
主机故障恢复后是否主动回切
node
iSCSI1
#
双机节点信息
node
iSCSI2
ping
172.24.17.201
#
网关信息
crm
on
#
开启
heartbeat
的
v2<
/p>
模式
iSC
SI1
和
iSCSI2
上的该配置文件
应保持一致
(
除
ucast
配置的对端
IP
地址
)<
/p>
。
/etc/ha.d/authke
ys
配置文件有效信息:
auth
3
-
-
-
-
-
-
-
-
-
上一篇:主要国家英文简写
下一篇:电影《黑客帝国》剧本 字幕文件 中英双译