天天看點

菜鳥學Linux 第092篇筆記 iscsi, gfs2, clvm

菜鳥學Linux 第092篇筆記 iscsi, gfs2, clvm

内容總覽

iSCSI 概述

安裝服務端scsi-target-utiles

安裝用戶端 iscsi-initiator-utils

配置iscsi基于使用者密碼認證

配置的iscsi所共享的硬碟使用叢集檔案系統gfs2

叢集邏輯卷 lvm2-cluster

SCSI and iSCSI (small computer system interface)

lun (logical unit number)邏輯裝置

iSCSI 

用來實作将scsi裝置基于網絡傳送到其它用戶端,并且映射到用戶端為硬體裝置,此種方式

和nfs有高大差別,它可以實作挂載共享的磁盤,分區等操作

存儲區域網絡

共享資料(基于塊)

使SCSI的傳輸距離變長

三種iscsi innitiator

iscsi hba卡  可以實力完成資料封裝,CPU使用率相對較低

iscsi toe卡  以軟體方式動作的scsi指令,CPU使用率相對适中

iscsi 驅動程式 (軟體方式實作,CPU使用率相對較高)

使用tcp 3260端口

iscsi會話

服務端

iSCSI Target: scsi-target-utils

3260

用戶端認證方式:

1. 基于IP

2. 基于使用者,chap

用戶端

ISCSI Intiator: iscsi-initiator-utils

open-iscsi

安裝服務端scsi-target-utiles (即提供iscsi硬碟的提供端)

1.安裝和啟動

# yum install scsi-target-utils

# rpm -ql scsi-target-utils

# service tgtd start

# netstat -tunlp

# chkconfig tgtd on

2.配置指令

tgtadm模式化的指令

常用模式: target, logicalunit, account

target --op

new, delete, show, bind, unbind, update

logicalunit --op

new, delete

account --op

new, delete, bind, unbind

選項簡寫

--lld, -L

--tid, -t

--lun, -l

--backing-store <path>, -b

--initiator-address <address>, -I

--targetname <targetname>, -T

targetname:

iqn.yyyy-mm.<reversed domain name>[:identifier]

iqn.2017-01.com.mysky:tstore.disk1

3.建立target

首先給伺服器新安裝一塊硬碟不需要格式化(推薦)

建立target

# tgtadm --lld iscsi --mode target --op new --targetname 

iqn.2017-01.com.mysky:teststore.disk1 --tid 1 (一條指令)

# tgtadm --lld iscsi --mode target --op show

将target添加邏輯磁盤

# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 

--backing-store /dev/sdb (一條指令)

綁定target使用範圍

# tgtadm --lld iscsi --mode target --op bind --tid 1 

--initiator-address 192.168.11.0/24 (一條指令)

1. 用戶端安裝iscsi-initiator-utils

# yum -y install iscsi-initiator-utils

# rpm -ql iscsi-initiator-utils

2. 配置

配置initiatorName 

# echo "InitiatorName=`iscsi-iname -p iqn.2017-01.com.mysk`" > 

/etc/iscsi/initiatorname.iscsi  (一條指令)

# cat /etc/iscsi/initiatorname.iscsi

# service iscsi start

iscsiadm模式化指令

-m {discovery|node|session|iface}

discovery 發現某伺服器是否有target輸出,以及輸出了哪些target

node 管理跟某target的關聯關系

session 會話管理

iface 接口管理

發現某個伺服器上的target

iscsiadm -m discovery [ -hV ] [ -d debug_level ] [ -P printlevel ] 

[ -I iface -t type -p ip:port [ -l ] ]

-d 0-8

-I 

-t type: SendTaget(st), SLP, iSNS

-p IP:port

iscsiadm -m discovery -d 2 -t st -p 192.168.11.200

查詢完成後會保留記錄在此檔案夾下

# ls /var/lib/iscsi/send_targets/

連接配接到上邊所發現的target

iscsiadm  -m node [ [ -T targetname -p ip:port -I iface ] [ -l | -u | -R | -s] ] 

[ [ -o operation ]  [ -n name ]  [-v value ] [ -p ip:port ] ] (一條指令)

-l loin

-u logout

    iscsiadm -m node -T iqn.2017-01.com.mysky:teststore.disk1 -p 192.168.11.200 -l

    此時使用fdisk -l檢視磁盤,即可看到多了一塊硬碟,

     可以對該硬碟進行分區,格式化,挂載等操作

    (此時,共享存儲服務已經建立完成)

注意的是,如果多台用戶端同時連接配接此台iscsi設定時,如果未使用叢集檔案系統的話,多台用戶端

如果同時讀寫此台裝置的同一個檔案時,可能會出現檔案系統崩潰

iscsi-initiator-utils:

不支援discovery認證

如果例如基于使用者的認證,必須首先開放基于IP的認證

直接使用tgtadm所配置的參數無法儲存,因為是其工作在核心中,如果重新開機伺服器,或重新啟動

此服務後,tgtadm所配置的參數會被删除

如要儲存,則需要修改/etc/tgt/targets.conf檔案,此檔案在啟動時會被tgt-admin指令讀取

1. 伺服器端配置(永久生效)

# vim /etc/tgt/targets.conf

添加如下内容

<target iqn.2017-01.com.mysky:disk1>

        <backing-store /dev/sdb1>

                vender_id mysky

                lun 3

        </backing-store>

        incominguser iscsiuser iscsipw

        initiator-address 192.168.11.0/24

</target>

重新啟動tgtd服務使其配置生效

# service tgtd restart  (注意用戶端的連接配接必須全部斷開)

2. 清除此前的iscsi連接配接(在用戶端上)

# iscsiadm -m node -T iqn.2017-01.com.mysky:disk1 -p 192.168.11.200 -u

# iscsiadm -m node -T iqn.2017-01.com.mysky:disk1 -p 192.168.11.200 -o delete

# fdisk -l

修改/etc/iscsi/iscsid.conf檔案

# vim /etc/iscsi/iscsid.conf

啟用如下三項并修改其密碼和使用者的和伺服器端保持一緻(我這裡是顯示已經修改好的)

node.session.auth.authmethod = CHAP

node.session.auth.username = iscsiuser

node.session.auth.password = iscsipw

添加完成後重新開機scsi服務

# service iscsi restart

(完成基于使用者密碼認證)

将剛剛配置的iscsi所共享的硬碟使用叢集檔案系統

可以使用叢集檔案系統鎖

可以實作叢集的檔案系統共享

可以實作一個節點上傳一個檔案,其它節點立即便可顯示該檔案

準備工作

要想使用叢集檔案系統所有iscsi用戶端必須得有叢集檔案系統元件

cman rgmanager

并已經配置好叢集節點可以互相通信fence addnode

1. 安裝gfs2-utils

# yum install gfs2-utils

先為硬碟建立分區,并使用partprobe通知核心更新

2. 格式化檔案系統為gfs2

# mkfs.gfs2 -j 2 -p lock_dlm -t clsgfs:mysqlstore /dev/sdb1

# mount /dev/sdb1 /mnt

(注意此檔案系統不會顯示lost+found檔案)

添加journal

# gfs2_jadd -j 3 /dev/sdb1

-j後所跟的數表示要再添加幾個journal

其它節點直接挂載即可

mkfs.gfs2

-j # 指定日志區域的個數,有幾個就可以被幾個節點所挂載

-J #MB 指定日志區域的大小,預設為128MB

-p {lock_dlm|lock_nolock} (當叢集檔案系統被一個節點使用時,就不需要使用分布鎖)

-t <name> 鎖表的名稱, 格式為clustername:locktablename

clustername為目前節點所在的叢集的名稱

locktablename要在目前叢集中唯一

安裝叢集邏輯卷 lvm2-cluster

與lvm類似,隻是這是一個叢集的邏輯卷

配置叢集ha cman rgmanager gfs2-utils lvm2-cluster

同步時間

修改hosts檔案

clvm 共享存儲做成lvm

借用ha機制

/etc/lvm/lvm.conf

locking_type = 3

clvm

1.安裝lvm2-cluster

在每個節點安裝lvm2-cluster

# yum -y install lvm2-cluster

或者在跳闆機執行安裝lvm2-cluster

# alias ha='for I in {1..3}; do'

# ha ssh node$I 'yum -y install lvm2-cluster'; done

2. 配置clvm

跳闆機執行

# ha ssh node$I 'lvmconf --enable-cluster'; done

# ha ssh node$I 'service clvmd start'; done

# ha ssh node$I 'chkconfig clvm on; chkconfig cman on; chkconfig rgmanager on'; done

3. 建立lvm邏輯卷

和使用本地磁盤建立邏輯卷相同,隻是所對應的磁盤為iscsi

pvcreate /dev/sdb

vgcreate clustervg /dev/sdb

lvcreate -L 10G -n clusterlv clustervg

4. 為clvm邏輯卷建立gfs2檔案系統

# mkfs.gfs2 -j 2 -p local_dlm -t tcluster:locktab1 /dev/clustervg/clusterlv

5. 挂載clvm

# mkdir /mydata

# mount -t gfs2 /dev/clustervg/clusterlv /mydata

檢視gfs檔案系統

# gfs2_tool df /mydata

# gfs2_tool gettune <mountpoint> 檢視lvm可調參數

# gfs2_tool settune <mountpoint> <parameter> <value> 修改具體的某個參數

# gfs2_tool journals <mountpoint> 檢視磁盤日志資訊

6. 擴充clvm

先擴充clvm和lvm擴充相同,最後通知擴充使用如下指令

# gfs2_grow /dev/clustervg/clusterlv 擴充clvm

(完結)

總結

centOS 6.5 已經淘汰了 ccs_tool此工具 而是使用ccs

WARNING

       All  ccs_tool  editing  capabilities  are  now obsoleted and unsup-

       ported.  Please see also ccs package and documentation for  a  more

       complete implementation of cluster.conf CLI editor.

本文轉自Winthcloud部落格51CTO部落格,原文連結http://blog.51cto.com/winthcloud/1895001如需轉載請自行聯系原作者

Winthcloud

繼續閱讀