KingbaseES Clusterware 高可用案例之---构建iSCSI共享存储

news2024/11/19 15:21:28

案例说明:
在KingbaseES Clusterware高可用的架构中,集群节点需要访问共享的存储设备,可以使用FC SAN、iscsi SAN、NAS等存储设备。本案例详细描述了,在Linux系统下构建 iscsi存储服务器及客户端访问的过程,为部署KingbaseES Clusterware做好相应的准备。

如下所示:KingbaseES Clusterware架构

系统架构节点信息:

ISCSI SAN存储架构:

一、iscsi server配置

Tips:
iscsi server提供共享存储,并接受client的访问。

1、系统环境信息

[root@node1 ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

2、server端软件包安装及启动服务

#软件包安装
[root@node1 ~]# yum -y install targetd targetcli

#启动server端服务
[root@node1 ~]# systemctl start target

[root@node1 ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.

[root@node1 ~]# systemctl status target
● target.service - Restore LIO kernel target configuration
   Loaded: loaded (/usr/lib/systemd/system/target.service; enabled; vendor preset: disabled)
   Active: active (exited) since Wed 2022-11-23 15:46:17 CST; 17s ago
 Main PID: 22094 (code=exited, status=0/SUCCESS)

Nov 23 15:46:15 node1 systemd[1]: Starting Restore LIO kernel target configuration...
Nov 23 15:46:17 node1 target[22094]: No saved config file at /etc/target/saveconfig.json, ok, exiting
Nov 23 15:46:17 node1 systemd[1]: Started Restore LIO kernel target configuration.

3、iscsi server端配置Tips:
当执行targetcli出现以下错误时,需要安装python-rtslib软件。

安装python-rtslib软件:[root@node1 ~]# yum install -y python-rtslib

server端配置工具:

[root@node1 ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> help

AVAILABLE COMMANDS
==================
The following commands are available in the
current path:

  - bookmarks action [bookmark] 
  - cd [path] 
  - clearconfig [confirm] 
  - exit 
  - get [group] [parameter...] 
  - help [topic] 
  - ls [path] [depth] 
  - pwd 
  - refresh 
  - restoreconfig [savefile] [clear_existing] [target] [storage_object] 
  - saveconfig [savefile] 
  - sessions [action] [sid] 
  - set [group] [parameter=value...] 
  - status 
  - version

4、server端添加共享磁盘

[root@node1 ~]# fdisk -l
 .......
Disk /dev/sdb: 21.6 GB, 21579694080 bytes, 42147840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

5、server端iscsi配置

1)创建要发布的磁盘(块设备LUN)

[root@node1 ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 0]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 0]
  o- loopback ......................................................................................................... [Targets: 0]

/> /backstores/block create server0.disk1 /dev/sdb
Created block storage object server0.disk1 using /dev/sdb.
#注:server0.disk1 是给/dev/sdb转化成块的名字。

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- server0.disk1 ................................................................. [/dev/sdb (20.1GiB) write-thru deactivated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 0]
  o- loopback ......................................................................................................... [Targets: 0]

2)创建iqn名字即创建iscsi对象
iqn:iSCSI Qualified Name(ISCSI 限定名称)

/> /iscsi create iqn.test.com.bqdn:disk1
WWN not valid as: iqn, naa, eui
# 注意:iqn名称格式

/> /iscsi create iqn.2022-11.com.bqdn:disk1
Created target iqn.2022-11.com.bqdn:disk1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- server0.disk1 ................................................................. [/dev/sdb (20.1GiB) write-thru deactivated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2022-11.com.bqdn:disk1 ........................................................................................ [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 0]
  |     o- luns .......................................................................................................... [LUNs: 0]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]

3)设置ACL即将ISCSI对象与客户端IP或主机名绑定

/> /iscsi/iqn.2022-11.com.bqdn:disk1/tpg1/acls create iqn.2022-11.com.bdqn:client1
Created Node ACL for iqn.2022-11.com.bdqn:client1

/> ls
o- / ......................................................................................................................... [...]
 o- backstores .............................................................................................................. [...]
 | o- block .................................................................................................. [Storage Objects: 1]
 | | o- server0.disk1 ................................................................. [/dev/sdb (20.1GiB) write-thru deactivated]
 | |   o- alua ................................................................................................... [ALUA Groups: 1]
 | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
 | o- fileio ................................................................................................. [Storage Objects: 0]
 | o- pscsi .................................................................................................. [Storage Objects: 0]
 | o- ramdisk ................................................................................................ [Storage Objects: 0]
 o- iscsi ............................................................................................................ [Targets: 1]
 | o- iqn.2022-11.com.bqdn:disk1 ........................................................................................ [TPGs: 1]
 |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
 |     o- acls .......................................................................................................... [ACLs: 1]
 |     | o- iqn.2022-11.com.bdqn:client1 ......................................................................... [Mapped LUNs: 0]
 |     o- luns .......................................................................................................... [LUNs: 0]
 |     o- portals .................................................................................................... [Portals: 1]
 |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
 o- loopback ......................................................................................................... [Targets: 0]
/> 
#注:iqn.2022-11.com.bdqn:client1是 initiator 的名字,需要在客户端中设置的。

4)创建LUN并绑定块

/> /iscsi/iqn.2022-11.com.bqdn:disk1/tpg1/luns create /backstores/block/server0.disk1
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2022-11.com.bdqn:client1

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- server0.disk1 ................................................................... [/dev/sdb (20.1GiB) write-thru activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2022-11.com.bqdn:disk1 ........................................................................................ [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.2022-11.com.bdqn:client1 ......................................................................... [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ......................................................................... [lun0 block/server0.disk1 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 .............................................................. [block/server0.disk1 (/dev/sdb) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]

二、iscsi client访问iscsi server

1、系统环境信息

[root@node1 ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

2、客户端软件包安装

[root@node2 ~]# rpm -qa |grep iscsi
libiscsi-1.9.0-6.el7.x86_64
iscsi-initiator-utils-6.2.0.873-32.el7.x86_64
iscsi-initiator-utils-iscsiuio-6.2.0.873-32.el7.x86_64

3、客户端配置

# 配置iscsi client名称
[root@node2 ~]# cat /etc/iscsi/initiatorname.iscsi 
#InitiatorName=iqn.1994-05.com.redhat:e43610d8fc4d
InitiatorName=iqn.2022-11.com.bdqn:client1

4、客户端访问iscsi服务器

1)客户端访问工具iscsiadm

[root@node2 ~]# iscsiadm --help
iscsiadm -m discoverydb [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -Dl ] ] | [ [ -p ip:port -t type] [ -o operation ] [ -n name ] [ -v value ] [ -lD ] ] 
iscsiadm -m discovery [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -l ] ] | [ [ -p ip:port ] [ -l | -D ] ] 
iscsiadm -m node [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ -S ] [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u | -R | -s] ] [ [ -o  operation  ] [ -n name ] [ -v value ] ]
iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P  printlevel] [ -r sessionid | sysfsdir [ -R | -u | -s ] [ -o operation ] [ -n name ] [ -v value ] ]
iscsiadm -m iface [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I ifacename | -H hostno|MAC ] [ [ -o  operation  ] [ -n name ] [ -v value ] ] [ -C ping [ -a ip ] [ -b packetsize ] [ -c count ] [ -i interval ] ]
iscsiadm -m fw [ -d debug_level ] [ -l ]
iscsiadm -m host [ -P printlevel ] [ -H hostno|MAC ] [ [ -C chap [ -x chap_tbl_idx ] ] | [ -C flashnode [ -A portal_type ] [ -x flashnode_idx ] ] | [ -C stats ] ] [ [ -o operation ] [ -n name ] [ -v value ] ] 
iscsiadm -k priority

2)连接iscsi server

# discovery iscsi server

[root@node2 ~]# iscsiadm -m discovery -t st -p 192.168.8.200 -l
192.168.8.200:3260,1 iqn.2022-11.com.bqdn:disk1
Logging in to [iface: default, target: iqn.2022-11.com.bqdn:disk1, portal: 192.168.8.200,3260] (multiple)
Login to [iface: default, target: iqn.2022-11.com.bqdn:disk1, portal: 192.168.8.200,3260] successful.

# 查看共享存储
[root@node2 ~]# lsscsi
[0:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sda 
[2:0:0:0]    cd/dvd  VBOX     CD-ROM           1.0   /dev/sr0 
[3:0:0:0]    disk    LIO-ORG  server0.disk1    4.0   /dev/sdb 
# 如上所示,已经发现共享的存储/dev/sdb。

3)查看磁盘设备

Tips:
如下所示,可以通过fdisk查看到共享的存储,可以像本地磁盘一样去使用共享存储。

[root@node2 ~]# fdisk -l
.......
Disk /dev/sdb: 21.6 GB, 21579694080 bytes, 42147840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33550336 bytes

4)启动客户端iscsi服务

[root@node2 ~]# systemctl start iscsi 
[root@node2 ~]# systemctl status iscsi
● iscsi.service - Login and scanning of iSCSI devices
   Loaded: loaded (/usr/lib/systemd/system/iscsi.service; enabled; vendor preset: disabled)
   Active: active (exited) since Wed 2022-11-23 16:17:53 CST; 1s ago
     Docs: man:iscsid(8)
           man:iscsiadm(8)
  Process: 27430 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=21)
  Process: 27419 ExecStart=/usr/libexec/iscsi-mark-root-nodes (code=exited, status=0/SUCCESS)
 Main PID: 27430 (code=exited, status=21)

Nov 23 16:17:53 node2 systemd[1]: Starting Login and scanning of iSCSI devices...
Nov 23 16:17:53 node2 iscsiadm[27430]: iscsiadm: No records found
Nov 23 16:17:53 node2 systemd[1]: Started Login and scanning of iSCSI devices.

三、iscsi client使用共享存储

1、创建磁盘分区[root@node2 ~]# fdisk /dev/sdb

2、mount磁盘分区

[root@node2 ~]# mkdir /sharedsk

[root@node2 ~]# mount /dev/sdb1 /sharedsk
[root@node2 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   39G   23G   16G  61% /
devtmpfs                 906M     0  906M   0% /dev
tmpfs                    921M   84K  920M   1% /dev/shm
........
/dev/sdb1                 21G   33M   21G   1% /sharedsk

#如上所示,在node2节点(iscsi client)已经可以像本地磁盘一样访问共享存储。

四、总结

通过iscsi存储可以构建高性价比的共享存储设备,在基于共享存储的高可用架构中被广泛使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8Manage SRM电子采购软件为企业带来采购优势

在如今各行行业竞争激烈的环境中,企业想要从中脱颖而出,利用现代化电子采购软件来建立优势是必不可少的。采用电子采购软件的优势越来越明显,其许多用途也越来越为人所知。企业使用电子采购的主要原因是为了控制强大的库存、减少采购重复和改…

GNU编译器常见伪操作

伪操作不会生成机器码,只是在编译阶段告诉编译器怎么做。类似于C语言中的 #if、#define 等带“#”的,#if 告诉编译器哪段不需要被编译,#define 告诉编译器哪些宏需要替换。 不同编译器,伪操作的语法不一样,这里主要介…

python帮我省下了这笔冤枉钱

背景 今天不得不说一说我这个电脑的事情。我这个电脑是2年前买的,屏幕非常大,是16寸的。 基本上没什么缺点,就是每隔一年,就要处理一下储存问题。 为什么呢,因为我的这台电脑的储存是512G的。所以不是太大。 但是今天…

【小学信息技术教资面试】《英文汉字巧切换》教案

题目:英文汉字巧切换内容: 基本要求: (1) 请在10分钟内完成试讲。 (2) 灵活切换汉字和英文字符。 (3) 试讲过程中涉及操作,进行演示即可。 《英文汉字巧切换…

如何准备考pmp?

我考的是旧考纲,5A 通过的,备考经验大家可以参考下,取长补短~ 一、复习计划的制定 根据之前在培训班共同奋斗的小伙伴学习时间统计,平均每天的学习时间是在 3-4 小时左右,基本上是白天 1 小时晚上 3 小时左右&#xf…

MySQL (二)------MySQL的使用、SQL的介绍

1.1 MySQL服务的启动 “我的电脑/计算机”-->右键-->“管理”-->“服务”-->启动和关闭MySQL服务 “开始菜单”-->“控制面板”-->“管理工具”-->“服务”-->启动和关闭MySQL “任务管理器”-->“服务”-->启动和关闭MySQL 或者 以管理员…

SQL练习题之求每个部门工资最高的人

冬至,又称日南至、冬节、亚岁。 文章目录前言一、题目二、表数据三、解答方法四、延伸思考题外话前言 分享自己做SQL练习时遇到的经典题目,供各位小伙伴参考。 一、题目 现有员工表employee,求每个部门工资最高的前五个员工的 id, name, de…

硬件系统工程师宝典(1)-----硬件系统设计应该从哪里开始?

系统设计举足轻重的一步,需求分析 今天我们开始读张志伟老师的《硬件系统工程师宝典》,这是一本非常好的入门书,对需求分析,电源、信号完整性,电源完整性,可制造性,原理图,pcb的详细…

风控特征变量如何命名

风控变量的命名相信是各位小伙伴,不管是策略还是模型开发的同学都会经常遇到的问题。如果变量不多,假设变量也就只有十几二十个左右,相信大家也不需要怎么处理,或许下面这样的简单命名方式就好了: 如VAR1~VARN&#x…

一套Abaqus常用子程序的二次开发和复杂应用攻略

当物体所受载荷是比较复杂的函数时(如与时间、位置等相关),通过界面输入的方式已经难以实现,通常便需要借助于DLOAD子程序来实现。下面将就ABAQUS软件的DLOAD子程序进行讲解和应用举例,希望通过此次讲解能够让更多的同…

01背包问题

01背包问题一、01背包问题1、问题描述2、问题性质分析3、动态规划思路(1)状态方程a.状态表示:b.状态转移:(2)循环的设计3、代码模板(1)朴素版(2)优化版一、01背包问题 1、问题描述 2、问题性质分析 这道题…

WEB接口测试之Jmeter接口测试自动化(初次接触)

软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试。 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在繁杂的手工界面测试之余, 更…

相信制造业品牌的实力:专访鸿雁全屋智能贵州总代理

作者 | 牧之 编辑 | 小沐 出品 | 智哪儿 zhinaer.cn长期以来,我们一直在讲智能家居市场的下沉,从一二线城市到三四线城市,从沿海到内陆。而事实上,印象中「欠发达」的内陆城市,对于智能家居的接受度可能比我们想象得要…

Qt中调用gRPC

RPC是Remote Procedure Call的简称,中文叫远程过程调用。 gRPC是由 google开发的一个高性能、通用的开源RPC框架,主要面向移动应用开发且基于HTTP/2协议标准而设计,同时支持大多数流行的编程语言。 一.编译gRPC 操作系统:window…

百亿级流量的系统架构该怎么设计,今天就来教会你!

V-xin:ruyuan0330 获得600页原创精品文章汇总PDF 目录 一、前情提示二、清晰划分系统边界三、引入消息中间件解耦四、利用消息中间件削峰填谷五、手动流量开关配合数据库运维六、支持多系统同时订阅数据七、系统解耦后的感受八、下集预告 一、前情提示 上一篇文章…

吊炸天的云原生,到底是个啥

云原生技术里有很多技术、概念和术语,不了解的人,往往弄不清楚而一头雾水,这些概念都是啥,之间是什么关系?本文要说的就是这些。本文更多是科普和扫盲,无意面面俱到,也无意深入细节。 本文适合一…

Allegro如何合并同名网络铜皮操作指导

Allegro如何合并同名网络铜皮操作指导 Allegro可以将同名网络的铜皮合并起来,如下图,需要把下面两块铜皮合并成一块铜皮 具体操作如下 选择Shape选择merge shapes

剑指Offer-面试题1:整数除法——你真的会用Math.abs吗?

整数除法 题目要求 输入2个int型整数,它们进行除法计算并返回商,要求不得使用乘号*、除号/及求余符号%。当发生溢出时,返回最大的整数值。假设除数不为0。例如,输入15和2,输出15/2的结果,即7。 有问题的…

使用OpenCV的函数polylines()绘制多条相连的线段和多边形;使用函数fillPoly()绘制带填充效果的多边形

函数polylines()可用来根据点集绘制多条相连的线段,也可用来绘制多边形。 函数polylines()有两种原型,这里只向大家介绍比较常用的那种原型。 函数polylines()的C原型如下: void cv::polylines(InputOutputArray img,const Point *const *…

Power BI 11个必学官方示例数据案例(附下载链接)

在开始学习Power BI时,最大的问题就是不知道哪里找数据,或者有数据却对搭建看板毫无头绪, 不知道该从哪里下手。 本文收集整理了官网上最值得学习的11个案例,包括不同行业和分析方法,方便大家按需学习。点击标题即可转…