SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 产品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 服务器集群简单化
  • 成功案例
  • 联系我们
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

Microsoft Azure IaaS中的Linux故障转移群集,没有共享存储

12月 19, 2018 by Jason Aw Leave a Comment

循序渐进:如何在没有共享存储的Microsoft Azure IaaS中配置Linux故障转移群集#azan #sanless

在本分步指南中,我将向您介绍在Microsoft Azure IaaS(基础架构即服务)中配置高可用性2节点MySQL群集(以及见证服务器)所需的所有步骤。 该指南包括适当的屏幕截图,shell命令和代码片段。 我假设您对Microsoft Azure有点熟悉,并且已经拥有一个具有关联订阅的Azure帐户。 如果没有,您今天就可以注册一个免费帐户。 我还将假设您具有基本的Linux系统管理技能,并了解基本的故障转移群集概念,如虚拟IP等。

免责声明:Azure是一个快速发展的目标。 它每天都在变得越来越好!因此,功能/屏幕/按钮必然会随着时间的推移而发生变化,因此您的体验可能会与您在下面看到的略有不同。 虽然本指南将向您展示如何使MySQL数据库具有高可用性,但您当然可以调整此信息和流程以保护其他应用程序或数据库,如SAP,Oracle,PostgreSQL,NFS文件服务器等。以下是在Microsoft Azure IaaS中创建高可用性MySQL数据库的高级步骤:

  1. 创建资源组
  2. 创建一个虚拟网络
  3. 创建存储帐户
  4. 在可用性集中创建虚拟机
  5. 设置虚拟机静态IP地址
  6. 将数据磁盘添加到群集节点
  7. 创建入站安全规则以允许VNC访问
  8. Linux OS配置
  9. 安装和配置MySQL
  10. 安装和配置群集
  11. 创建内部负载均衡器
  12. 测试群集连接

概观

本文将介绍在没有共享存储的Microsoft Azure IaaS中配置Linux故障转移群集的步骤。它将介绍如何在单个Azure区域中创建集群。 由于新的Azure资源管理器(ARM),群集节点(node1,node2和见证服务器)将驻留在可用性集(3个不同的故障域和更新域)中。我们将使用新的Azure资源管理器创建所有资源。配置如下所示:将集群图使用以下IP地址:

  • node1:10.0.0.4
  • node2:10.0.0.5
  • 见证人:10.0.0.6
  • 虚拟/“浮动”IP:10.0.0.99
  • MySQL端口:3306

创建资源组

首先,创建一个资源组。 您的资源组最终将包含与我们的集群部署相关的所有各种对象:虚拟机,虚拟网络,存储帐户等。 在这里,我们将调用我们新创建的资源组“cluster-resources”。 资源组1 选择您所在地区时请注意。 您的所有资源都需要位于同一区域内。 在这里,我们将把所有内容部署到“美国西部”地区: 资源组2

创建虚拟网络(VNet)

创建虚拟网络将是您在没有共享存储的Microsoft Azure IaaS中配置Linux故障转移群集的下一步。虚拟网络是Azure云中专用于您的隔离网络。 您可以完全控制IP地址块和子网,路由,安全策略(即防火墙),DNS设置等内容。 您将在您的虚拟网络中启动Azure Iaas虚拟机(VM)。虚拟网络1 每当您获得选项时,请确保选择“资源管理器”作为部署模型虚拟网络2:为新虚拟网络命名(“虚拟网络”),并确保选择在上一步骤中创建的资源组(“群集 – 资源”)。 您的虚拟网络需要与资源组位于同一区域。 我们将保留IP地址和子网值作为默认值。虚拟网络3

创建存储帐户

在配置任何虚拟机之前,您需要创建存储它们的存储帐户。存储帐户1 同样,请确保在任何时候选择“资源管理器”作为部署模型:接存储帐户2下来,为新存储帐户命名。 存储帐户名称在* ALL * Azure中必须是唯一的。 (存储在Azure存储中的每个对象都具有唯一的URL地址。存储帐户名称构成该地址的子域。)在此示例中,我将存储帐户称为“linuxclusterstorage”,但您需要在设置自己的存储帐户时选择不同的存储帐户。根据您的要求和预算选择存储类型。 为了本指南的目的,我选择了“Standard-LRS”(即 本地冗余)以最小化成本。确保您的新存储帐户已添加到您在同一位置(本示例中为“West US”)的步骤1(“cluster-resources”)中创建的资源组中: 存储帐户3

在可用性集中创建虚拟机

我们将在本指南中配置3台虚拟机。 前两个VM(我称之为“node1”和“node2”)将作为集群节点运行,能够将MySQL数据库及其相关资源联机。 第三个VM将充当群集的见证服务器,以增强对裂脑的保护。为确保最大可用性,所有3个VM都将添加到同一可用性集中,以确保它们最终位于不同的故障域和更新域中。

创建“node1”VM

创建第一个VM(“node1”)。 在本指南中,我们将使用CentOS 6.创建vm1X:确保使用Resource Manager部署模型。 默认情况下应该选择:为创建vm2VM提供主机名(“node1”)和用户名/密码,稍后将用于SSH进入系统。 确保将此VM添加到资源组(“cluster-resources”),并且它与所有其他资源位于同一区域创建vm3:接下来,选择实例大小。 有关可用的各种实例大小的更多信息,请单击此处。出于本指南的目的,我对Node1和Node2使用“A3 Standard”,以最大限度地降低成本,因为这不会运行生产工作负载。 我为见证服务器使用了更小的“A1标准”大小。 选择最适合您的实例大小。创建vm4 如果您希望能够从外部世界连接到VM,请设置公共IP地址。 我这样做了以后我可以将SSH和VNC引入系创建vm5统重要信息:默认情况下,您的VM不会被添加到可用性集中。 在确保创建新可用性集期间的“设置”屏幕上,我们将调用“cluster-availability-set”。 Azure资源管理器(ARM)允许您创建具有3个故障域的可用性集。 此处的默认值很好:查看创建vm6VM属性,然后单击“确定”以创建第一个VM: 创建vm7

创建“node2”和“见证”VM

重复上述步骤两次以创建另外两个VM。 我创建了另一个名为“node2”的“A3标准”大小的VM和一个名为“见证”的“A1标准”大小的VM。这里唯一的区别是,您将把这些虚拟机添加到我们刚刚创建的可用性集(“集群可用性集”)中:您创建vm8的3个虚拟机可能需要一些时间来进行配置。 完成后,您将在Azure门户的“虚拟机”屏幕上看到您的虚拟机: 创建vm9

设置虚拟机静态IP地址

将使用以下IP地址设置VM:

  • node1:10.0.0.4
  • node2:10.0.0.5
  • 见证人:10.0.0.6

对每个VM重复此步骤。 选择VM并编辑网络接口选静态IP地址1择与VM关联的网络接口,然后编辑IP地址。 选择“静态”并指定所需的IP地址: 静态IP地址2

将数据磁盘添加到群集节点

接下来,我们需要为我们的集群节点(“node1”和“node2”)添加一个额外的磁盘。 该磁盘将存储我们的MySQL数据库,稍后将在节点之间进行复制。注意:您不需要向“见证”节点添加额外的磁盘。 只有“node1”和“node2”。编辑VM,选择磁盘,然后附加新磁盘:第二个disk1根据工作负载选择磁盘类型(标准或高级SSD)和大小。 在这里,我在两个群集节点上创建了一个10GB标准磁盘。 就主机缓存而言,“无”或“只读”缓存很好。 我不建议使用“读/写”,因为可能会丢失数据: 第二个磁盘2

创建入站安全规则以允许VNC访问

如果您的VM是网络安全组(NSG)的一部分,默认情况下,除非您在创建VM期间禁用它,否则“Azure防火墙”中打开的唯一端口是SSH(端口22)。 在本指南的后面,我将使用VNC访问“node1”的桌面并使用GUI配置集群。 创建入站安全规则以打开VNC访问。 在该指南中使用端口5902。 根据您的VNC配置进行调整。虚拟机 – >(选择节点1) – >网络接口 – >(选择网卡) – >网络安全组 – >(选择NSG) – >入站安全规则 – >添加 入站安全规则1

Linux OS配置

这里我们将离开Azure门户一段时间,并在命令行上弄脏我们,作为Linux管理员,您现在应该习惯这样做。 您没有获得Azure中Linux VM的root密码,因此一旦您以创建VM期间指定的用户身份登录,请使用“sudo”命令获取root权限:

$ sudo su  - 

编辑/ etc / hosts

除非您已经设置了DNS服务器,否则您需要在所有3台服务器上创建主机文件条目,以便它们可以通过名称正确地相互解析。将以下行添加到/ etc / hosts文件的末尾:

10.0.0.4 node1
10.0.0.5 node2
10.0.0.6目击者
10.0.0.99 mysql-vip

禁用SELinux

编辑/ etc / sysconfig / linux并设置“SELINUX = disabled”:

#vi / etc / sysconfig / selinux

#此文件控制系统上SELinux的状态。
#SELINUX =可以采用以下三个值中的一个:
#enforcing  - 强制执行SELinux安全策略。
#permissive  -  SELinux打印警告而不是强制执行。
#disabled  - 未加载SELinux策略。
SELINUX =禁用
#SELINUXTYPE =可以采用以下两个值之一:
#targeted  - 目标进程受到保护,
#mls  - 多级安全保护。
SELINUXTYPE =针对性

配置iptables,以便集群虚拟IP可以正常工作

重要信息:为了使群集虚拟IP能够连接并且还要监视IP资源,需要设置一些iptables规则。 注意:10.0.0.99是我们将在群集中使用的虚拟IP,3306是我的MySQL使用的默认端口。在node1(10.0.0.4)上,运行以下命令:

#iptables --flush
#iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
 - 到目的地10.0.0.99:303
#iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT 
--to-source 10.0.0.4
#service iptables save
#chkconfig iptables on

在Node2(10.0.0.5)上,运行以下命令:

#iptables --flush
#iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
 - 到目的地10.0.0.99:303
#iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT 
--to-source 10.0.0.5
#service iptables save
#chkconfig iptables on

安装和配置VNC(及相关软件包)

要访问我们的Linux服务器的GUI,以便稍后配置我们的集群,请在您的集群节点上安装VNC服务器。 在我的设置中,我只在“node1”上执行此操作

#yum install tigervnc-server xterm
#vncpasswd
#vi / etc / sysconfig / vncservers

      VNCSERVERS = “2:根”
      VNCSERVERARGS [2] =“ - 几何1024x768”

#service vncserver start
#chkconfig vncserver on

通过在笔记本电脑/台式机上打开VNC客户端并连接到群集节点的公共IP来测试连接性

重新启动群集节点

重新启动群集节点,以便禁用SELinux,并检测先前添加的第二个磁盘。只需要重新启动“node1”和“node2”。

分区和格式化“数据”磁盘

在本指南的第6步(“将数据磁盘添加到群集节点”中),我们只是… …为每个群集节点添加了一个额外的磁盘,以存储我们将要保护的应用程序数据。 在这种情况下,它恰好是MySQL数据库。在Azure IaaS中,Linux虚拟机对磁盘使用以下安排:

  • / dev / sda – 操作系统磁盘
  • / dev / sdb – 临时磁盘
  • / dev / sdc – 第一个数据磁盘
  • / dev / sdd – 第二个数据磁盘
  • …
  • / dev / sdj – 第8个数据磁盘

我们在本指南的第6步中添加的磁盘应显示为/ dev / sdc。 您可以运行“fdisk -l”命令进行验证。 您将看到/ dev / sda(OS)和/ dev / sdb(临时)已经有磁盘分区并正在使用。

#fdisk -l

磁盘/ dev / sdb:306.0 GB,306016419840字节
255个头,63个扇区/轨道,37204个气缸
单位= 16065 * 512 = 8225280字节的柱面
扇区大小(逻辑/物理):512字节/ 512字节
I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0xd3920649

设备启动开始结束块ID系统
/ dev / sdb1 * 1 37205 298842112 83 Linux

磁盘/ dev / sdc:10.7 GB,10737418240字节
255个头,63个扇区/轨道,1305个气缸
单位= 16065 * 512 = 8225280字节的柱面
扇区大小(逻辑/物理):512字节/ 512字节
I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0x00000000

磁盘/ dev / sda:32.2 GB,32212254720字节
255个头,63个扇区/轨道,3916个气缸
单位= 16065 * 512 = 8225280字节的柱面
扇区大小(逻辑/物理):512字节/ 512字节
I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0x000c23d3

设备启动开始结束块ID系统
/ dev / sda1 * 1 3789 30432256 83 Linux
/ dev / sda2 3789 3917 1024000 82 Linux swap / Solaris

  在这里,我将创建一个分区(/ dev / sdc1),对其进行格式化,并将其挂载到MySQL的默认位置,即/ var / lib / mysql。 在“node1”和“node2”上执行以下步骤:

#fdisk / dev / sdc
命令(m求助):n
命令行动
扩展
p主分区(1-4)
p
分区号(1-4):1
第一个柱面(1-1305,默认值1):<enter>
使用默认值1
最后一个气缸,气缸或尺寸{K,M,G}(1-1305,默认1305):<enter>
使用默认值1305
 
命令(m求助):w
分区表已被更改!
调用ioctl()重新读取分区表。
同步磁盘。
[root @ node1~]#

#mkfs.ext4 / dev / sdc1
#mkdir / var / lib / mysql

在node1上,挂载文件系统:

#mount / dev / sdc1 / var / lib / mysql

安装并配置MySQL

接下来,安装安装MySQL包,初始化示例数据库,并为MySQL设置“root”密码。

在“node1”上:

#yum -y install mysql mysql-server
#/ usr / bin / mysql_install_db --datadir =“/ var / lib / mysql /” -  user = mysql
#mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 
--datadir = / var / lib / mysql --log&
#
##注意:下一个命令允许来自任何主机的远程连接。
生产不是一个好主意!
#echo“update user set Host ='%'where host ='node1';刷新权限| mysql mysql
#
##将MySQL的root密码设置为'SIOS'
#echo“update user set Password = PASSWORD('SIOS')其中User ='root'; flush特权” 
| mysql mysql

创建MySQL配置文件。我们将它放在数据磁盘上(稍后将被复制 – /var/lib/mysql/my.cnf)。 例:

#vi /var/lib/mysql/my.cnf

的[mysqld]
DATADIR =的/ var / lib中/ MySQL的
插座=的/ var / lib中/ MySQL的/的mysql.sock
PID文件=的/ var / lib中/ MySQL的/ mysqld.pid
用户=根
端口= 3306
#建议禁用符号链接以防止出现各种安全风险
符号链接= 0
 
[mysqld_safe的]
对数误差=的/ var /数/ mysqld.log
PID文件= / var / run中/ mysqld的/ mysqld.pid
 
[客户]
用户=根
密码= SIOS

删除位于/ etc中的原始MySQL配置文件(如果存在):

#rm /etc/my.cnf

在“node2”上:

在“node2”上,您只需要安装MySQL软件包。 其他步骤不是必需的:

[root @ node2~] #yum -y install mysql mysql-server

安装和配置群集

此时,我们已准备好安装和配置我们的集群。 SIOS Protection Suite for Linux(又名SPS-Linux)将在本指南中用作群集技术。 它在单个集成解决方案中提供高可用性故障转移群集功能(LifeKeeper)以及实时,块级数据复制(DataKeeper)。 SPS-Linux使您能够部署“SANLess”群集,即“无共享”群集,这意味着群集节点没有任何共享存储,就像Azure VM一样。

安装适用于Linux的SIOS Protection Suite

在所有3个VM(node1,node2,见证)上执行以下步骤:下载SPS-Linux安装映像文件(sps.img),并获取试用许可证或购买永久许可证。 有关更多信息,请联系SIOS。您将环回安装它并以root身份运行“setup”脚本(或首先“sudo su – ”以获取根shell)例如:

#mkdir / tmp / install
#mount -o loop sps.img / tmp / install
#cd / tmp / install
# 。/建立

在安装脚本期间,系统会提示您回答一些问题。 您将在几乎每个屏幕上按Enter键以接受默认值。 请注意以下例外情况:

  • 在标题为“High Availability NFS”的屏幕上,您可以选择“n”,因为我们不会创建高可用性NFS服务器
  • 在安装脚本结束时,您可以选择立即或稍后安装试用许可证密钥。我们稍后会安装许可证密钥,因此您可以安全地选择“n”
  • 在“设置”的最后一个屏幕中,从屏幕上显示的列表中选择要安装的ARK(应用程序恢复工具包,即“群集代理”)。
    • 仅在“node1”和“node2”上需要ARK。 你不需要在“见证”上安装
    • 使用向上/向下箭头导航列表,然后按空格键选择以下内容:
      • lkDR – 适用于Linux的DataKeeper
      • lkSQL – LifeKeeper MySQL RDBMS恢复工具包
    • 这将导致在“node1”和“node2”上安装以下附加RPM:
      • SteelEye公司 – LKDR-9.0.2-6513.noarch.rpm
      • SteelEye公司 – lkSQL-9.0.2-6513.noarch.rpm

安装Witness / Quorum包

LifeKeeper(steeleye-lkQWK)的Quorum / Witness服务器支持包与LifeKeeper核心的现有故障转移过程相结合,可以在总体网络故障常见的情况下以更大的可信度进行系统故障转移。这实际上意味着可以在大大降低“裂脑”情况的风险的同时进行故障转移。在所有3个节点(node1,node2,见证)上安装Witness / Quorum rpm:

#cd / tmp / install / quorum
#rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm

在所有3个节点(node1,node2,见证)上,编辑/ etc / default / LifeKeeper,设置NOBCASTPING = 1仅打开见证服务器(“见证”),编辑/ etc / default / LifeKeeper,设置WITNESS_MODE = off / none

安装许可证密钥

在所有3个节点上,使用“lkkeyins”命令安装从SIOS获取的许可证文件:

#/ opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic

启动LifeKeeper

在所有3个节点上,使用“lkstart”命令启动集群软件:

#/ opt / LifeKeeper / bin / lkstart

设置LifeKeeper GUI的用户权限

在所有3个节点上,编辑/ etc / group并将“tony”用户(或在VM创建期间指定的任何用户名)添加到“lkadmin”组以授予对LifeKeeper GUI的访问权限。 默认情况下,只有“root”是该组的成员,并且我们没有root密码:

#vi / etc / group

lkadmin:X:1001:根,贝

打开LifeKeeper GUI

与node1的公共IP地址建立VNC连接。 根据上面的VNC和入站安全规则配置,您将使用之前指定的VNC密码连接到<Public_IP>:2。 登录后,打开终端窗口并使用以下命令运行LifeKeeper GUI:

#/ opt / LifeKeeper / bin / lkGUIapp&

系统将提示您连接到第一个群集节点(“node1”)。 输入在VM创建期间指定的linux用户标识和密码:LK-GUI的CONNECT1接下来,通过单击以下屏幕截图中突出显示的“连接到服务器”按钮连接到“node2”和“witnessLK-GUI的CONNECT2”:您现在应该看到GUI中的所有3个服务器,一个绿色的复选标记图标,表明他们在线和健康: LK-GUI的连接3

创建沟通路径

右键单击“node1”并选择Create Comm Patcomm path1h选择BOTH“node2”和“witness”,然后按照向导进行操作。 这将创建以下之间的通信路径:

  • node1和node2
  • node1&witness

comm path2 仍然需要在node2和witness之间创建comm路径。  右键单击“node2”并选择Create Comm Path。 按照向导选择“见证”作为远程服comm path3务器:此时已创建以下通信路径:

  • node1 < – > node2
  • node1 < – >见证
  • node2 < – >见证

服务器前面的图标已从绿色“复选标记”更改为黄色“危险标记”。 这是因为我们在节点之间只有一条通信路径。如果VM具有多个NIC(可以在此处找到有关创建具有多个NIC的Azure VM的信息,但本文不会介绍),则可以在每个服务器之间创建冗余通信路径。comm path4 要删除警告图标,请转到“查看”菜单,然后取消选择“Comm Path Redundancy Warningcomm path5”:结果: comm path6

验证通信路径

使用“lcdstatus”命令查看群集资源的状态。 运行以下命令以验证是否已在每个节点上正确创建了与所涉及的其他两个服务器的通信路径:#/ opt / LifeKeeper / bin / lcdstatus -q -d node1 MACHINE NETWORK ADDRESSES / DEVICE STATE PRIO node2 TCP 10.0.0.4/ 10.0.0.5 ALIVE 1见证TCP 10.0.0.4/10.0.0.6 ALIVE 1#/ opt / LifeKeeper / bin / lcdstatus -q -d node2 MACHINE NETWORK ADDRESSES / DEVICE STATE PRIO node1 TCP 10.0.0.5/10.0.0.4 ALIVE 1见证TCP 10.0.0.5/10.0.0.6 ALIVE 1#/ opt / LifeKeeper / bin / lcdstatus -q -d witness MACHINE NETWORK ADDRESSES / DEVICE STATE PRIO node1 TCP 10.0.0.6/10.0.0.4 ALIVE 1 node2 TCP 10.0.0.6/10.0.0.5活着1

创建数据复制群集资源(即 镜子)

接下来,创建数据复制资源以将/ var / lib / mysql分区从node1(source)复制到node2(target)。 单击“绿色加号”图标以创建新资数据复制1源:按照向导进行以下选择:

请选择恢复工具包:数据复制
转换类型:智能
服务器:node1
层次结构类型:复制退出文件系统
现有的挂载点:/ var / lib / mysql
数据复制资源标记:datarep-mysql
文件系统资源选项卡:/ var / lib / mysql
位图文件:(默认值)
启用异步复制:否

创建资源后,将出现“扩展”(即定义备份服务器)向导。 使用以下选项:

目标服务器:node2
转换类型:智能
模板优先级:1
目标优先级:10
目标磁盘:/ dev / sdc1
数据复制资源标记:datarep-mysql
位图文件:(默认值)
复制路径:10.0.0.4/10.0.0.5
挂载点:/ var / lib / mysql
根标签:/ var / lib / mysql

群集将如下所示: 数据复制2

创建虚拟IP

接下来,创建虚拟IP群集资源。 单击“绿色加号”图标以创建新虚拟ip1资源:按照向导使用以下选项创建IP资源:

选择Recovery Kit:IP
转换类型:智能
IP资源:10.0.0.99
网络掩码:255.255.255.0
网络接口:eth0
IP资源标签:ip-10.0.0.99

使用以下选项扩展IP资源:

转换类型:智能
模板优先级:1
目标优先级:10
IP资源:10.0.0.99
网络掩码:255.255.255.0
网络接口:eth0
IP资源标签:ip-10.0.0.99

配置IP资源的Ping列表

默认情况下,SPS-Linux通过执行广播ping来监视IP资源的运行状况。 在许多虚拟和云环境中,广播ping不起作用。 在上一步中,我们在/ etc / default / LifeKeeper中设置“NOBCASTPING = 1”以关闭广播ping检查。相反,我们将定义一个ping列表。     ping list4

 

   

 
转换类型:智能
服务器:node1
 
 
 

 

目标服务器:node2
转换类型:智能
模板优先级:1
目标优先级:10

   

 

       

 

               

测试群集连接

  

 

 

 

 

 
  
 
  
 
  
 
 

   

 
 
  
 
 
  
 
  
 
  
 
 

 

Filed Under: 服务器集群简单化

使用Open-iSCSI Initiator软件连接到iSCSI目标的指南

12月 18, 2018 by Jason Aw Leave a Comment

循序渐进:使用Open-iSCSI Initiator软件连接到iSCSI目标

本文将向您展示如何配置Open-iSCSI启动器(客户端)以连接到现有iSCSI目标(服务器)。  我将不会在本文中详细介绍如何设置iSCSI Target。如果您的环境中还没有可用的iSCSI Target,您可以查看OpenFiler。

在本指南中,我使用CentOS 6.5系统作为iSCSI发起程序(客户端),并将连接到现有的iSCSI目标。

安装Open-iSCSI软件

在我的CentOS 6.5系统上,默认情况下不安装打开的iscsi启动程序包。  您可以通过运行以下命令来检查系统是否已安装软件包:[root @ linux~] #rpm -qa | grep iscsi-initiator-utils如果尚未安装iscsi-initiator-utils软件包,请使用“yum”命令进行安装:[root @ linux~] #yum install iscsi-initiator-utils

启动iSCSI服务

安装iscsi-initiator-utils包后,启动iscsid服务并配置iscsid和iscsi服务,以便每次系统启动时自动启动:[root @ linux~]#/ etc / init.d /iscsid start [root @ linux~] #chkconfig iscsid on [root @ linux~] #chkconfig iscsi on

发现iSCSI目标

使用iscsiadm命令发现iSCSI目标服务器上的所有iSCSI目标(即iSCSI SAN)。  在这种情况下,我的服务器运行OpenFiler):[root @ linux~] #iscsiadm -m discovery -t sendtargets -p 192.168.197.201 192.168.197.201:3260,1 iqn.2006-01.com.openfiler:tsn.target1注意:在我的示例中,我的iSCSI Target(SAN)的主机名是“openfiler.mydomain.com”,其IP地址为192.168.197.201

登录iSCSI目标并在引导时配置自动登录

[root @ linux~] #iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.target1 -p 192.168.197.201 --login [root @ linux~] #iscsiadm -m node -T iqn.2006 -01.com.openfiler:tsn.target1 -p 192.168.197.201 --op update -n node.startup -v automatic验证iSCSI会话是否处于活动状态[root @ linux~] #iscsiadm -m session tcp:[1] 192.168。197.201:3260,1 iqn.2006-01.com.openfiler:tsn.target1确定iSCSI目标映射到[root @ linux~]#的设备(cd / dev / disk / by-path; ls -l * iscsi * | awk'{FS =“”; print $ 9“”$ 10“”$ 11}')ip-192.168.197.201:3260-iscsi-iqn.2006-01.com.openfiler:tsn.target1-lun-0 – >。./../sdc这告诉我们iSCSI目标已映射到系统上的/ dev / sdc。  从这里,使用标准分区/格式化命令(fdisk,mkfs等)根据需要设置磁盘!如果您有兴趣了解如何使用Open-iSCSI Initiator软件连接到iSCSI目标,请阅读我们的博客经过Linuxclustering的许可转载

Filed Under: 服务器集群简单化

在群集架构中消除SPoF的最佳实践

12月 16, 2018 by Jason Aw Leave a Comment

在群集体系结构中消除SPoF的最佳实践

在群集架构中消除SPoF的最佳实践

就像链条仅与其最薄弱的环节一样强大,高可用性集群的有效性受到其部署中存在的任何单点故障(SPOF)的限制。  为确保绝对最高级别的可用性,必须删除SPOF。  有一种简单的方法可以消除这些弱链接的集群。

迈出第一步

明智地,在需要消除群集架构中的SPoF时,识别存在的任何SPOF,特别注意服务器,网络连接和存储设备。  现代服务器具有冗余和纠错内存,跨硬盘和多个CPU的数据条带化,这消除了大多数硬件组件作为SPOF。   但是,软件和人为错误可能导致服务器或应用程序停机。  部署高可用性集群解决方案可监控服务器和关键应用程序的运行状况,并在发生故障时采取自动恢复操作,从而消除了此SPOF。  所有群集解决方案都提供基本的ping测试来验证服务器功能。但只有更高级的产品才能跟踪应用程序运行状况,并能够自动从检测到的故障中恢复。  更深层次的检测和恢复可最大限度地减少停机时间。为冗余构建集群的所有组件对于最大化正常运行时间至关重要。  与存储的连接通常代表SPOF,并且将多路径构建到任何共享存储配置中至关重要。  Linux DM Multipath(DM-MPIO)在路径发生故障时将块I / O重新路由到备用路径。这消除了从服务器到存储的路径中的所有组件作为潜在的SPOF,并在发生故障时提供自动恢复。

还有什么可以做的

但即使配置了多路径,共享存储/ SAN仍然代表单点故障,就像它所在的物理数据中心一样。  为了提供进一步的保护,必须部署关键数据的异地复制以及跨站点群集。  结合站点之间的网络冗余,这种最佳解决方案将消除群集架构中的SPoF。实时复制可确保始终提供最新的业务关键数据副本。异地执行备份数据中心或云服务还可以防止火灾,停电等导致的主要数据中心中断。使用应用程序级别的监视和自动恢复,共享存储的多路径以及异地保护的数据复制,可以消除群集体系结构中潜在的单点故障。  在群集架构和部署期间关注这些组件将确保最大可能的正常运行时间。

寻求最佳方法消除群集架构中的SPoF不是火箭科学,与我们聊天转载Linuxclustering的许可

Filed Under: 服务器集群简单化

如何使用Linux软件iSCSI Target设置低成本SAN

12月 12, 2018 by Jason Aw Leave a Comment

使用Linux软件iSCSI Target设置低成本SAN

使用Linux软件iSCSI Target设置低成本SAN的循序渐进指南

当您没有足够的面团来提供昂贵的SAN硬件时,软件iSCSI目标可以是设置共享存储的好方法。iSCSI目标就像一个真正的硬件iSCSI阵列,除了它只是在传统服务器(甚至是VM!)上运行的一个软件。设置iSCSI目标是获取所需共享存储的一种简单且低成本的方法。如果您使用的是集群产品,如Microsoft Windows Server故障转移群集(WSFC),集群文件系统(如GFS或OCFS),则无关紧要。或者即使您希望通过启用存储池和实时迁移来充分利用虚拟化平台(无论是VMware,XenServer还是Hyper-V)。

关于Lio-Target

最近,Linux内核采用LIO-Target作为Linux的标准iSCSI目标。LIO-Target适用于Linux内核3.1及更高版本。LIO-Target支持Windows Server故障转移群集,VMware vSphere和其他群集产品所需的SCSI-3持久性保留。iSCSI目标提供的LUN(磁盘)可以是整个磁盘,分区,甚至只是文件系统上的普通旧文件。LIO-Target支持所有这些选项。下面,我们将介绍在Ubuntu 12.04服务器上配置LIO-Target的步骤。其他最近的发行版也可能有用,但步骤可能略有不同。

配置步骤

首先,安装Lio-target软件包:

#apt-get install -no-install-recommended targetcli python-urwid使用targetcli命令行实用程序控制Lio-target。 第一步是为LUN创建后备存储。在此示例中,我们将使用文件支持的LUN,它只是iSCSI目标服务器的文件系统上的普通文件。#targetcli /> cd backstores / / backstores> ls o- backstores …………………………………………………… […] o- fileio ………………………… ………………。[0存储对象] o-iblock ………………………………………… [0存储对象] o- pscsi ………………………………………… .. [0存储对象] o- rd_dr ………………………………………… .. [0存储对象] o- rd_mcp ………………………………………… [0存储对象] / backstores> cd fileio / backstores / fileio> help create(for help)/ backstores / fileio> create lun0 / root / iscsi-lun0 2g(创建2GB文件支持的LUN)

第二步

现在创建了LUN。使用Linux软件iSCSI Target设置低成本SAN的一半时间。接下来,我们将设置目标,以便客户端系统可以访问存储。/ backstores / fileio / lun0> cd / iscsi / iscsi> create(创建iqn和目标端口组)创建目标iqn.2003-01.org.linux-iscsi.murray.x8664:sn.31fc1a672ba1。选定的TPG标签1。成功创建了TPG 1。输入新节点/iscsi/iqn.2003-01.org.linux-iscsi.murray.x8664:sn.31fc1a672ba1/tpgt1 /iscsi/iqn.20…a672ba1/tpgt1> set attribute authentication = 0(关闭chap auth)/ iscsi / iqn.20 … a672ba1 / tpgt1> cd luns /iscsi/iqn.20…a1/tpgt1/luns> create / backstores / fileio / lun0(创建目标LUN)选定的LUN 0。已成功创建LUN 0。输入新节点/iscsi/iqn.2003-01.org.linux-iscsi.murray.x8664:sn.31fc1a672ba1/tpgt1/luns/lun0 /iscsi/iqn.20…gt1/luns/lun0> cd ../ .. /门户iSCSI流量可能消耗大量带宽。 您可能希望iSCSI流量位于专用(或SAN)网络上,而不是公共网络上。 /iscsi/iqn.20…tpgt1/portals> create 10.10.102.164(创建门户以侦听连接)使用默认IP端口3260成功创建网络门户10.10.102.164:3260。输入新节点/iscsi/iqn.2003-01.org.linux-iscsi.murray.x8664:sn.31fc1a672ba1/tpgt1/portals/10.10.102.164:3260 /iscsi/iqn.20….102.164:3260> cd .. /iscsi/iqn.20…tpgt1/portals> create 10.11.102.164使用默认IP端口3260成功创建网络门户10.11.102.164:3260。输入新节点/iscsi/iqn.2003-01.org.linux-iscsi.murray.x8664:sn.31fc1a672ba1/tpgt1/portals/10.11.102.164:3260 /iscsi/iqn.20…102.164:3260> cd ../ ../acls

最后一步

注册iSCSI启动器(客户端系统)以使用Linux软件iSCSI Target设置低成本SAN。为此,您需要找到系统的启动器名称。对于Linux,这通常位于/etc/iscsi/initiatorname.iscsi中。对于Windows,可在“配置”选项卡的“iSCSI Initiator属性”面板中找到启动器名称。/iscsi/iqn.20…a1/tpgt1/acls> create iqn.1994-05.com.redhat:f5b312caf756(注册启动器 – 此IQN是启动器的IQN – 为将访问目标的每个启动器执行此操作)为iqn.1994-05.com.redhat创建了节点ACL:f5b312caf756创建了映射的LUN 0。输入新节点/iscsi/iqn.2003-01.org.linux-iscsi.murray.x8664:sn.31fc1a672ba1/tpgt1/acls/iqn.1994-05.com.redhat:f5b312caf756 /iscsi/iqn.20.…102.164 :3260> cd /现在,记得保存配置。如果没有此步骤,配置将不会持久。 /> saveconfig(保存配置!)/> exit现在需要将启动器连接到目标。通常,您需要提供目标的IP地址才能连接到它。建立连接后,客户端系统将看到一个新磁盘。使用前需要格式化磁盘。就是这样!您已准备好使用新SAN。玩得开心!使用Linux软件iSCSI Target设置低成本SAN时遇到问题,请阅读我们的其他有用文章。在Linuxclustering的许可下重新生成

Filed Under: 服务器集群简单化

用于复制数据的平台(基于主机的复制与SAN复制)

12月 10, 2018 by Jason Aw Leave a Comment

选择要复制数据的平台 - 基于主机还是基于存储?

选择要复制数据的平台 – 基于主机还是基于存储?

复制数据的两个常见平台来自对数据进行操作的服务器主机以及保存数据的存储阵列。在创建用于业务连续性的远程复制副本时,是否部署基于主机或存储的解决方案的决定在很大程度上取决于正在复制的平台以及正在使用的应用程序的业务要求。如果业务要求在发生站点灾难时对运营产生零影响,那么基于主机的技术提供了唯一可行的解​​决方案。

基于主机的复制

复制数据的两个平台之一是基于主机的复制。它不会将用户锁定到任何一个供应商的特定存储阵列中。 例如,SIOS SteelEye DataKeeper可以从任何阵列复制到任何阵列,无论供应商如何。这种能力最终降低了成本,并为用户提供了选择适合其环境的灵活性。大多数基于主机的复制解决方案还可以通过IP网络本地复制数据,因此用户无需购买昂贵的硬件即可实现此功能。基于主机的解决方案与存储无关,使IT经理可以自由选择符合企业需求的任何存储。复制软件可与任何可安装到应用程序平台的存储硬件配合使用,提供异构存储支持。它可以在块或卷级别运行,也非常适合群集配置。一个缺点是基于主机的解决方案消耗服务器资源并且可能影响整体服务器性能。尽管存在这种可能性,但当IT经理需要多供应商存储基础架构或在特定的基于主机的应用程序中拥有遗留投资或内部专业知识时,基于主机的解决方案可能仍然适用。

基于存储的复制

另一个复制数据的平台是基于存储的复制与操作系统无关,不会增加任何处理开销。但是,供应商经常要求用户从类似的阵列复制。此要求可能成本很高,尤其是在主站点使用高性能磁盘时 – 现在必须在辅助站点使用相同的磁盘。此外,基于存储的解决方案本身通过光纤通道进行复制,并且通常需要额外的硬件来通过IP网络发送数据,这进一步增加了成本。基于存储的替代方案确实提供了来自专用存储供应商的集成解决方案的优势。这些解决方案利用存储阵列的控制器作为复制功能的操作平台。硬件和软件的紧密集成使存储供应商能够对复制配置进行前所未有的控制,并允许难以与其他复制方法匹配的服务级别保证。大多数存储供应商还定制了他们的产品,以补充服务器虚拟化并使用虚拟机存储故障转移等关键功能。有些企业可能还与特定的存储供应商建立了长期的业务关系;在这种情况下,存储解决方案可能是相关的。

选择

然而,高质量的服务是有代价的。基于存储的复制总是设置类似存储设备配置的前提条件。这意味着必须部署两个类似配置的高端存储阵列以支持复制功能,从而增加成本并将组织与一个供应商的存储解决方案联系起来。锁定到特定存储供应商可能是一个缺点。一些存储供应商在其存储阵列产品线中存在兼容性限制,可能使技术升级和数据迁移变得昂贵。在调查存储替代方案时,IT经理应注意总体拥有成本:未来许可费和支持合同的成本将影响长期的费用。成本是一个关键考虑因素,但它受到许可证成本之外的几个因素的影响。该解决方案是否需要专用硬件,还是可以与预先存在的硬件一起使用?该解决方案是否需要扩展网络基础架构,如果需要,需要多少?如果您使用复制将数据的辅助副本放在不同的服务器,存储或站点上,请意识到此方法意味着某些硬件冗余。提供重新部署现有基础架构以满足冗余硬件要求的选项的复制产品需要较少的资本支出。

优点和缺点

在决定基于主机或存储的复制解决方案之前,请仔细考虑每个复制解决方案的优缺点,如下表所示。

基于主机的复制 基于存储的复制
优点
  • 存储不可知
  • 同步和异步
  • 数据可以驻留在任何存储上
  • 不受存储升级的影响
  • 单一供应商用于存储和复制
  • 主机系统没有负担
  • 操作系统不可知
缺点
  • 在主机上使用计算资源

 

  • 供应商锁定
  • 成本较高
  • 数据必须驻留在数组上
  • 光纤通道的距离限制
最合适
  • 多供应商存储环境
  • 需要同步或异步选项
  • 实施故障转移群集
  • 复制到多个目标
  • 喜欢单一供应商
  • 距离有限,环境受控
  • 复制到单个目标

  要了解SIOS如何在平台上复制数据,请阅读我们的成功案例经Linuxclustering许可转载

Filed Under: 服务器集群简单化

  • « Previous Page
  • 1
  • …
  • 67
  • 68
  • 69
  • 70
  • 71
  • …
  • 100
  • Next Page »

最近的帖子

  • 在 Nutanix 环境中选择高可用性解决方案的 10 个注意事项
  • 我的服务器是一次性的吗?高可用性软件如何融入云最佳实践
  • 灾难频发世界的数据恢复策略
  • DataKeeper 和棒球:灾难恢复的战略举措
  • SQL Server 停机风险预算

最热门的帖子

加入我们的邮件列表

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in