mysql iscsi_iscsi共享存儲的簡單配置和應用

1、環境介紹

SCSI(Small Computer System Interface)是塊數據傳輸協議,在存儲行業廣泛應用,是存儲設備最基本的標準協議。從根本上說,iSCSI協議是一種利用IP網絡來傳輸潛伏時間短的SCSI數據塊的方法,ISCSI使用以太網協議傳送SCSI命令、響應和數據。ISCSI可以用我們已經熟悉和每天都在使用的以太網來構建IP存儲局域網。通過這種方法,ISCSI克服了直接連接存儲的局限性,使我們可以跨不同服務器共享存儲資源,并可以在不停機狀態下擴充存儲容量。

所需軟件與軟件結構

CentOS 將 tgt 的軟件名稱定義為 scsi-target-utils ,因此你得要使用 yum 去安裝他才行。至于用來作為 initiator 的軟件則是使用 linux-iscsi 的項目,該項目所提供的軟件名稱則為 iscsi-initiator-utils 。所以,總的來說,你需要的軟件有:

scsi-target-utils:用來將 Linux 系統仿真成為 iSCSI target 的功能;

iscsi-initiator-utils:掛載來自 target 的磁盤到 Linux 本機上。

那么 scsi-target-utils 主要提供哪些檔案呢?基本上有底下幾個比較重要需要注意的:

/etc/tgt/targets.conf:主要配置文件,設定要分享的磁盤格式與哪幾顆;

/usr/sbin/tgt-admin:在線查詢、刪除 target 等功能的設定工具;

/usr/sbin/tgt-setup-lun:建立 target 以及設定分享的磁盤與可使用的

客戶端等工具軟件。

/usr/sbin/tgtadm:手動直接管理的管理員工具 (可使用配置文件取代);

/usr/sbin/tgtd:主要提供 iSCSI target 服務的主程序;

/usr/sbin/tgtimg:建置預計分享的映像文件裝置的工具 (以映像文件仿真磁盤);

這次的實驗結構

21b852077b48a2309bf3100f3f5f56fa.png

(sdx1、sdy1是物理的磁盤通過lun連接到target虛擬的共享塊,在客戶端掛載這個塊。這里我們添加一塊硬盤sdb,創建sdb1(400m)和sdb2(500m))

2、server端配置

添加一塊磁盤后

復查一下

[root@100 ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 60G 0 disk

├─sda1 8:1 0 500M 0 part /boot

└─sda2 8:2 0 59.5G 0 part

├─rhel-swap 253:0 0 2G 0 lvm [SWAP]

├─rhel-root 253:1 0 38.6G 0 lvm /

└─rhel-home 253:2 0 18.9G 0 lvm /home

sdb 8:16 0 10G 0 disk

├─sdb1 8:17 0 400M 0 part

└─sdb2 8:18 0 500M 0 part

sr0 11:0 1 3.6G 0 rom /dvd

安裝target并加入開機自啟動

yum install -y target*

systemctl start target

systemctl enable target

配置target的ctl將sdb1和sdb2共享出去

(一)、block關聯磁盤

[root@100 ~]# targetcli

targetcli shell version 2.1.fb37

Copyright 2011-2013 by Datera, Inc and others.

For help on commands, type 'help'.

/> /backstores/block create block1 /dev/sdb

/dev/sdb /dev/sdb1 /dev/sdb2

...................................dev

/> /backstores/block create block1 /dev/sdb1

Created block storage object block1 using /dev/sdb1.

/> /backstores/block create block2 /dev/sdb2

Created block storage object block2 using /dev/sdb2.

/> ls

o- / ..................................................................... [...]

o- backstores .......................................................... [...]

| o- block .............................................. [Storage Objects: 2]

| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]#新建的block

| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]#新建的block

| o- fileio ............................................. [Storage Objects: 0]

| o- pscsi .............................................. [Storage Objects: 0]

| o- ramdisk ............................................ [Storage Objects: 0]

o- iscsi ........................................................ [Targets: 0]

o- loopback ..................................................... [Targets: 0]

/>

(二)、創建target

/> /iscsi create iqn.2018-10.20.com:disk

Created target iqn.2018-10.20.com:disk.

Created TPG 1.

Global pref auto_add_default_portal=true

Created default portal listening on all IPs (0.0.0.0), port 3260.

/> ls

o- / ..................................................................... [...]

o- backstores .......................................................... [...]

| o- block .............................................. [Storage Objects: 2]

| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]

| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]

| o- fileio ............................................. [Storage Objects: 0]

| o- pscsi .............................................. [Storage Objects: 0]

| o- ramdisk ............................................ [Storage Objects: 0]

o- iscsi ........................................................ [Targets: 1] #這里是創建tartet的目錄

| o- iqn.2018-10.20.com:disk ....................................... [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]

(三)、創建lun關聯block和target

/> ls

o- / ..................................................................... [...]

o- backstores .......................................................... [...]

| o- block .............................................. [Storage Objects: 2]

| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]

| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]

| o- fileio ............................................. [Storage Objects: 0]

| o- pscsi .............................................. [Storage Objects: 0]

| o- ramdisk ............................................ [Storage Objects: 0]

o- iscsi ........................................................ [Targets: 1]

| o- iqn.2018-10.20.com:disk ....................................... [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]

/> iscsi/iqn.2018-10.20.com:disk/tpg1/acls create iqn.2018-10.20.com:xx

Created Node ACL for iqn.2018-10.20.com:xx

/> ls

o- / ..................................................................... [...]

o- backstores .......................................................... [...]

| o- block .............................................. [Storage Objects: 2]

| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]

| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]

| o- fileio ............................................. [Storage Objects: 0]

| o- pscsi .............................................. [Storage Objects: 0]

| o- ramdisk ............................................ [Storage Objects: 0]

o- iscsi ........................................................ [Targets: 1]

| o- iqn.2018-10.20.com:disk ....................................... [TPGs: 1]

| o- tpg1 ........................................... [no-gen-acls, no-auth]

| o- acls ...................................................... [ACLs: 1]

| | o- iqn.2018-10.20.com:xx ............................ [Mapped LUNs: 0]

| o- luns ...................................................... [LUNs: 0]

| o- portals ................................................ [Portals: 1]

| o- 0.0.0.0:3260 ................................................. [OK]

o- loopback ..................................................... [Targets: 0]

/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /

/backstores/block/block1 /lib/ /sbin/

/backstores/block/block2 /lib64/ /srv/

/bin/ /media/ /sys/

/boot/ /mnt/ /tmp/

/dev/ /opt/ /usr/

/dvd/ /proc/ /var/

/etc/ /root/

/home/ /run/

..................................................storage_object

/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /backstores/block/block

/backstores/block/block1 /backstores/block/block2

..................................................storage_object

/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /backstores/block/block1

Created LUN 0.

Created LUN 0->0 mapping in node ACL iqn.2018-10.20.com:xx

/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /backstores/block/block2

Created LUN 1.

Created LUN 1->1 mapping in node ACL iqn.2018-10.20.com:xx

/> ls

o- / ..................................................................... [...]

o- backstores .......................................................... [...]

| o- block .............................................. [Storage Objects: 2]

| | o- block1 .................... [/dev/sdb1 (400.0MiB) write-thru activated]

| | o- block2 .................... [/dev/sdb2 (500.0MiB) write-thru activated]

| o- fileio ............................................. [Storage Objects: 0]

| o- pscsi .............................................. [Storage Objects: 0]

| o- ramdisk ............................................ [Storage Objects: 0]

o- iscsi ........................................................ [Targets: 1]

| o- iqn.2018-10.20.com:disk ....................................... [TPGs: 1]

| o- tpg1 ........................................... [no-gen-acls, no-auth]

| o- acls ...................................................... [ACLs: 1] #添加了一條認證

| | o- iqn.2018-10.20.com:xx ............................ [Mapped LUNs: 2]

| | o- mapped_lun0 ............................ [lun0 block/block1 (rw)] #關聯lun

| | o- mapped_lun1 ............................ [lun1 block/block2 (rw)] #關聯lun

| o- luns ...................................................... [LUNs: 2]

| | o- lun0 ................................... [block/block1 (/dev/sdb1)]

| | o- lun1 ................................... [block/block2 (/dev/sdb2)]

| o- portals ................................................ [Portals: 1]

| o- 0.0.0.0:3260 ................................................. [OK]

o- loopback ..................................................... [Targets: 0]

/> exit

Global pref auto_save_on_exit=true

Last 10 configs saved in /etc/target/backup.

Configuration saved to /etc/target/saveconfig.json

至此服務器端就配置完了,詳細的配置可以到/etc/target/saveconfig.json修改

3、client端配置

(一)、安裝iscsi*

軟件包 iscsi-initiator-utils-6.2.0.873-29.el7.x86_64

軟件包 iscsi-initiator-utils-iscsiuio-6.2.0.873-29.el7.x86_64

[root@200 ~]# yum install -y iscsi*

(二)、加入開機自啟

[root@200 ~]# systemctl restart iscsid.service

[root@200 ~]# systemctl enable iscsid.service

(三)、做一個發現的操作,發現服務器共享的target名字是什么

[root@200 ~]# iscsiadm -m discovery -t st -p 192.168.137.100

192.168.137.100:3260,1 iqn.2018-10.20.com:disk

m模式mode-discovery, discoverydb.

t類型type must be sendtargets (or abbreviated as st), slp, isns or fw. Currently only sendtargets, fw, and iSNS is supported, see the DISCOVERY TYPES section.

p是IP:port

(四)、查看發現的條目

[root@200 ~]# iscsiadm -m discovery -p 192.168.137.100

# BEGIN RECORD 6.2.0.873-28

discovery.startup = manual

discovery.type = sendtargets #-t st

discovery.sendtargets.address = 192.168.137.100 #target服務端

discovery.sendtargets.port = 3260 #端口

discovery.sendtargets.auth.authmethod = None #認證沒有

discovery.sendtargets.auth.username =

discovery.sendtargets.auth.password =

discovery.sendtargets.auth.username_in =

discovery.sendtargets.auth.password_in =

discovery.sendtargets.timeo.login_timeout = 15 #登錄超時時間

discovery.sendtargets.use_discoveryd = No #沒有使用這個發現

discovery.sendtargets.discoveryd_poll_inval = 30

discovery.sendtargets.reopen_max = 5

discovery.sendtargets.timeo.auth_timeout = 45

discovery.sendtargets.timeo.active_timeout = 30

discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768

# END RECORD

(五)、修改客戶端的acl并登錄

[root@200 ~]# iscsiadm -m node -T iqn.2018-10.20.com:disk -p 192.168.137.100 -l

Logging in to [iface: default, target: iqn.2018-10.20.com:disk, portal: 192.168.137.100,3260] (multiple)

Login to [iface: default, target: iqn.2018-10.20.com:disk, portal: 192.168.137.100,3260] successful.

[root@200 ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 60G 0 disk

├─sda1 8:1 0 500M 0 part /boot

└─sda2 8:2 0 59.5G 0 part

├─rhel-swap 253:0 0 2G 0 lvm [SWAP]

├─rhel-root 253:1 0 38.6G 0 lvm /

└─rhel-home 253:2 0 18.9G 0 lvm /home

sdb 8:16 0 400M 0 disk

sdc 8:32 0 500M 0 disk

sr0 11:0 1 3.6G 0 rom /dvd

[root@200 ~]# cat /etc/iscsi/initiatorname.iscsi

#InitiatorName=iqn.1994-05.com.redhat:949f18f9ce84

InitiatorName=iqn.2018-10.20.com:xx ##剛才設置的acl條目

注:這個自動加載過來的磁盤重啟之后是自動加載過來的

4、客戶端掛載iscsi的盤

格式化sdb和sdc

[root@200 ~]# mkfs.xfs /dev/sdb

meta-data=/dev/sdb isize=256 agcount=8, agsize=12800 blks

= sectsz=512 attr=2, projid32bit=1

= crc=0 finobt=0

data = bsize=4096 blocks=102400, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=0

log =internal log bsize=4096 blocks=853, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

[root@200 ~]# mkfs.xfs /dev/sdc

meta-data=/dev/sdc isize=256 agcount=8, agsize=16000 blks

= sectsz=512 attr=2, projid32bit=1

= crc=0 finobt=0

data = bsize=4096 blocks=128000, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=0

log =internal log bsize=4096 blocks=853, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

創建掛載點并掛載

[root@200 ~]# mkdir /sdb

[root@200 ~]# mkdir /sdc

注:如果需要實時同步的話需要使用gfs集群文件系統

[root@200 ~]# cat /etc/fstab |tail -n 4

/dev/mapper/rhel-swap swap swap defaults 0 0

/dev/cdrom /dvd iso9660 defaults 0 0

/dev/sdb /sdb xfs _netdev 0 0 #添加的條目

/dev/sdc /sdc xfs _netdev 0 0 #添加的條目

[root@200 ~]# # mount -a

[root@200 ~]# mount |tail -n 4

gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)

/dev/sdb on /sdb type xfs (rw,relatime,seclabel,attr2,inode64,noquota,_netdev)

/dev/sdc on /sdc type xfs (rw,relatime,seclabel,attr2,inode64,noquota,_netdev)

[root@200 ~]#

5、總結

(一)、增加iscsi存儲

(1)發現iscsi存儲:iscsiadm

-m discovery -t st -p ISCSI_IP

(2)查看iscsi發現記錄:iscsiadm

-m node

(3)登錄iscsi存儲:iscsiadm

-m node -T LUN_NAME -p ISCSI_IP -l

(4)開機自動:

iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op

update -n node.startup -v

automatic

(二)、刪除iscsi存儲

(1)登出iscsi存儲

iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u

(2)對出iscsi所有登錄

iscsiadm -m node --logoutall=all

(3)刪除iscsi發現記錄:iscsiadm

-m node -o delete -T LUN_NAME -p ISCSI_IP

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383023.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

request mysql 接口_TP5接口開發

開啟debug調試模式(正式上線建議關閉)config.php// 應用調試模式app_debug > true,設置輸出類型index.phpnamespace app\index\controller;class Index{public function index(){$data [name > steven, age > 24];return json([code > 0, msg > 操作成功, data…

django和mysql寫注冊_Django電商項目---完成注冊頁面和用戶登錄

完成基本的創建項目、用戶注冊、登錄、注銷功能創建Django項目,創建df_user的App創建靜態文件夾static(跟manage.py保持在同一級別下)復制靜態文件(css images js)到static路徑下修改settings.py文件修改templates路徑修改數據庫新添加靜態文件加載路徑Pycharm連接mysql數據庫…

命令行進入指定目錄_VIM學習筆記 操作目錄(Manipulate Directory)

在目錄間移動使用以下命令,可以顯示當前所在的目錄::pwd使用以下命令,在Linux下可以進入HOME目錄,而在Windows下則顯示當前所在目錄::cd使用以下命令,可以進入指定的目錄::cd D:tepm使用以下命令…

mysql cluster雙機_GitHub - sophys/mysqlha: 博客“Mysql-cluster數據庫集群雙機HA研究”測試代碼...

mysqlha本代碼是基于博客Mysql-cluster數據庫集群雙機HA研究所寫的。測試采用的是32位環境,linux環境為debian,如果是其他系列只需修改部分指令即可。mysql-cluster版本位:mysql-cluster-gpl-7.2.7-linux2.6-i686.tar.gz,可自行去…

mysql gtid基礎_MySQL 基礎知識梳理學習(四)----GTID

在日常運維中,GTID帶來的最方便的作用就是搭建和維護主從復制。GTID的主從模式代替了MySQL早期版本中利用二進制日志文件的名稱和日志位置的做法,使用GTID使操作和維護都變得更加簡潔和可高。1.GTID的優點(1)基于GTID搭建主從復制根據簡單。(2)可以確保每…

k8s pod MySQL環境變量_Kubernetes 配置Pod和容器(一)定義容器環境變量

此頁展示了如何給運行在Kubernetes Pod中的容器定義環境變量。開始之前必須有一個Kubernets集群,和一個能和集群溝通的kubectl命令行工具。如果你還沒有集群,你可以用Minikube建立一個集群。給容器定義環境變量當你建立了一個Pod,你可以給你運行在Pod中的…

koa2 mysql 中間件_Koa2第二篇:中間件

第一篇介紹了生成器目錄設計。xyzcoding:Koa2第一篇:詳解生成器?zhuanlan.zhihu.com接下來學習Koa2的中間件。Koa2本身只能算一個極簡的HTTP服務器,自身不內置中間件,但是提供中間件內核。中間件是Koa2的核心,因此需要…

mysql命令行如何建庫_MySQL心得2--命令行方式建庫和表

1.創建使用create database或create schema命令可以創建數據庫。create database 庫名create database if not exists 庫名(創建庫并檢驗創建的庫是否存在,不存在則建,存在就不建了)MySQL不允許兩個數據庫使用相同的名字,使用ifnot exists從句…

python 少兒趣味編程下載_PYTHON少兒趣味編程

章認識Python11.1編程語言和Python11.1.1程序設計和編程語言11.1.2Python簡介21.2Python的安裝41.2.1Windows下的Python安裝41.2.2MAC下的Python安裝81.3個程序HelloWorld111.4開發工具IDLE121.4.1IDLE簡介121.4.2用IDLE編寫程序121.4.3IDLE的其他功能161.5小結18第2章變量、數…

rs485數據線接反_終于有人把RS485通訊的正確接線方式講明白了,網友:這下好辦了...

RS485是一個定義平衡數字多點系統中的驅動器和接收器的電氣特性的標準,該標準由電信行業協會和電子工業聯盟定義。使用該標準的數字通信網絡能在遠距離條件下以及電子噪聲大的環境下有效傳輸信號。RS485使得廉價本地網絡以及多支路通信鏈路的配置成為可能。那么RS485通訊的正確…

騎馬與砍殺python代碼_GitHub - yunwei1237/scottish-fold: 一個關于騎馬與砍殺的劇本制作工具...

scottish-fold一個關于騎馬與砍殺的劇本簡單快速的制作工具前言?在很久以前的時候,也就是剛開始玩騎砍的時候就想著能夠制作一個自己的劇本,用于書寫自己想要的故事。當我懷著遠大的夢想去這么做的時候才發現,原來制作劇本沒有自己想象的那么…

java tomcat 監控_java程序監控tomcat實現項目宕機自動重啟并發送郵件提醒

最近由于老項目頻繁掛掉,由于項目經過多批人之手,短時間難以定位問題,所以只好寫一個監控程序。 時間比較緊半天時間,而且水平有限大神勿噴,有好的方法還請賜教。 1、問題描述:分兩種情況1.1、tomcat 徹底掛…

java靜態類和非靜態類的區別_Java中靜態內部類和非靜態內部類到底有什么區別?...

內部類(Inner Class)和靜態內部類(Static Nested Class)的區別:定義在一個類內部的類叫內部類,包含內部類的類稱為外部類。內部類可以聲明public、protected、private等訪問限制,可以聲明 為abstract的供其他內部類或外部類繼承與擴展&#x…

java寫便簽_如何編寫一個便簽程序(用Java語言編寫)

如何編寫一個便簽程序(用Java語言編寫)熱度:336 發布時間:2011-02-18 11:44:16如何編寫一個便簽程序(用Java語言編寫)因為以前沒有好好學習Java,都搞忘了,請大家原諒,也請你們指導一下,怎么編寫這個程序&…

java 生成log4j_Java log4j配置每天生成一個日志文件 - 永恒ぃ☆心 的日志 - 網易博客...

一、配置屬性文件log4j.propertieslog4j.rootLoggerINFO,stdout,Rlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayout# Pattern to output the callers file name and line number.log4j.appender.stdout.layo…

java 子進程輸出流_具有輸入/輸出流的Java進程

首先,我建議更換這條線路。Process process Runtime.getRuntime ().exec ("/bin/bash");帶著線條ProcessBuilder builder new ProcessBuilder("/bin/bash");builder.redirectErrorStream(true);Process process builder.start();ProcessBuil…

java中if 運算符_[Java]Java基本語法結構(運算符,流程控制語句,if語句)

1:運算符(掌握)(1)算術運算符A:,-,*,/,%,,--B:的用法a:加法b:正號c:字符串連接符C:/和%的區別數據做除法操作的時候,/取得是商,%取得是余數D:和--的用法a:他們的作用是自增或者自減b:使用**單獨使用放在操作數據的前面和后面效果一樣。a或者a效果一樣。*…

java 變量取值范圍_JAVA中的變量及取值范圍

字節是二進制數據的單位。一個字節通常8位長。但是,一些老型號計算機結構使用不同的長度。為了避免混亂,在大多數國際文獻中,使用詞代替byte。變量:變量的數據類型;變量名變量值數據類型基本型數值型(整數)布爾型浮點型…

java object強制類型轉換_scala?object?轉Class?Scala強制類型轉換

asInstanceOf[T]將對象類型強制轉換為T類型。還是由于泛型存在類型擦除的原因,1.asInstanceOf[String]在運行時會拋出ClassCastException異常,而List(1).asInstanceOf[List[String]]將不會。packageresti.webimportorg.springframework.beans.factory.annotation.Au…

java毛玻璃_模糊效果(毛玻璃效果)

模糊效果(毛玻璃效果)效果演示:1. 使用iOS自帶的 UIImageImageEffects 文件文件中有這么幾個方法:- (UIImage *)applyLightEffect;- (UIImage *)applyExtraLightEffect;- (UIImage *)applyDarkEffect;- (UIImage *)applyTintEffectWithColor:(UIColor *)…