iSCSI Drvier Feature:
支持数据报文首部或数据验正;
CHAP认证
MultiPATH
动态target discover
Target:
1、准备要共享的设备,这里使用本地磁盘上的新分区:
# fdisk -l
建立所需要的新分区
# fdisk /dev/sda
# partprobe
2、安装iscsi服务端:
# yum -y install scsi-target-utils
# service tgtd start
# chkconfig tgtd on
# netstat -tnlp | grep 3260
3、服务端配置管理工具tgtadm的使用:
tgtadm --lld [driver] --op [operation] --mode [mode] [OPTION]...
(1)、添加一个新的 target 且其ID为 [id], 名字为 [name].
--lld [driver] --op new --mode target --tid=[id] --targetname [name]
(2)、显示所有或某个特定的target:
--lld [driver] --op show --mode target [--tid=[id]]
(3)、向某ID为[id]的设备上添加一个新的LUN,其号码为[lun],且此设备提供给initiator使用。[path]是某“块设备”的路径,此块设备也可以是raid或lvm设备。lun0已经被系统预留。
--lld [driver] --op new --mode=logicalunit --tid=[id] --lun=[lun] --backing-store [path]
(4)、删除ID为[id]的target:
--lld [driver] --op delete --mode target --tid=[id]
(5)、删除target [id]中的LUN [lun]:
-lld [driver] --op delete --mode=logicalunit --tid=[id] --lun=[lun]
(6)、定义某target的基于主机的访问控制列表,其中,[address]表示允许访问此target的initiator客户端的列表:
--lld [driver] --op bind --mode=target --tid=[id] --initiator-address=[address]
(7)、解除target [id]的访问控制列表中[address]的访问控制权限:
--lld [driver] --op unbind --mode=target --tid=[id] --initiator-address=[address]
例如:
(1)创建一个target:
# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2013-05.com.magedu:tsan.disk1
(2)显示所有:
# tgtadm --lld iscsi --op show --mode target
(3)显示刚创建的target:
# tgtadm --lld iscsi --op show --mode target --tid 1
(4)创建LUN,号码为1:
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sda5
(5)开放给192.168.0.0/24网络中的主机访问:
# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 172.16.0.0/16
其中的-I相当于--initiator-address
(6)Create a new account:
# tgtadm --lld iscsi --op new --mode account --user christina --password 123456
# tgtadm --lld iscsi --op show --mode account
Assign this account to a target:
# tgtadm --lld iscsi --op bind --mode account --tid 1 --user christina
# tgtadm --lld iscsi --op show --mode target
(7)Set up an outgoing account. First, you need to create a new account like the previous example
# tgtadm --lld iscsi --op new --mode account --user clyde --password 123456
# tgtadm --lld iscsi --op show --mode account
# tgtadm --lld iscsi --op bind --mode account --tid 1 --user clyde --outgoing
# tgtadm --lld iscsi --op show --mode target
客户端配置:
# yum install iscsi-initiator-utils
# echo "InitiatorName=`iscsi-iname -p iqn.2013-05.com.magedu`" > /etc/iscsi/initiatorname.iscsi
# echo "InitiatorAlias=initiator1" >> /etc/iscsi/initiatorname.iscsi
# service iscsi start
# chkconfig iscsi on
2、iscsiadm工具的使用:
iscsiadm是个模式化的工具,其模式可通过-m或--mode选项指定,常见的模式有discoverydb、node、fw、session、host、iface几个,如果没有额外指定其它选项,则discoverydb和node会显示其相关的所有记录;session用于显示所有的活动会话和连接,fw显示所有的启动固件值,host显示所有的iSCSI主机,iface显示/var/lib/iscsi/ifaces目录中的所有ifaces设定。
iscsiadm -m discovery [ -d debug_level ] [ -P printlevel ] [ -I iface -t type -p ip:port [ -l ] ]
iscsiadm -m node [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ [ -T tar-getname -p ip:port -I iface ] [ -l | -u | -R | -s] ] [ [ -o operation ]
-d, --debug=debug_level 显示debug信息,级别为0-8;
-l, --login
-t, --type=type 这里可以使用的类型为sendtargets(可简写为st)、slp、fw和 isns,此选项仅用于discovery模式,且目前仅支持st、fw和isns;其中st表示允许每个iSCSI target发送一个可用target列表给initiator;
-p, --portal=ip[:port] 指定target服务的IP和端口;
-m, --mode op 可用的mode有discovery, node, fw, host iface 和 session
-T, --targetname=targetname 用于指定target的名字
-u, --logout
-o, --op=OPEARTION:指定针对discoverydb数据库的操作,其仅能为new、delete、update、show和nonpersistent其中之一;
-I, --interface=[iface]:指定执行操作的iSCSI接口,这些接口定义在/var/lib/iscsi/ifaces中;
# iscsiadm -m discovery -t sendtargets -p 192.168.0.11
# iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -l
# iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -u
# iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -o delete
查看会话相关信息:
# iscsiadm -m session -s
挂载时使用_netdev作为选项
CHAP: 单向
创建服务端谁所需要的帐号,并实现单方向的认证:
1、在target端创建帐号christina,并为其授予访问某tid的权限:
# tgtadm --lld iscsi --op new --mode account --user mageedu --password 123456
接下来还要将用户与某target进行绑定:
# tgtadm --lld iscsi --op bind --mode account --tid 1 --user mageedu
# tgtadm --lld iscsi --op show --mode account
2、编辑initiator端主配置文件,配置客户端登录target时使用此帐号和密码:
# vim /etc/iscsi/iscsid.conf
取消如下项的注释:
# node.session.auth.authmethod = CHAP
# node.session.auth.username = username
# node.session.auth.password = password
而后,将后两项的用户名密码设置为target端设置的用户名和密码:
node.session.auth.username = christina
node.session.auth.password = 123456
哪果此前尚未登录过此target,接下来直接发现并登入即可。否则,则需要按照下面的第三步实现认证的启用。
3、如果initiator端已经登录过此target,此时还需要先注销登录后重启iscsid服务,并在删除此前生成的database后重新发现target,并重新登入,过程如下:
# iscsiadm -m session -r sid -u
# iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -u
# iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -o delete
# rm -rf /var/lib/iscsi/nodes/iqn.2010-08.com.example.tgt:disk1
# rm -rf -rf /var/lib/iscsi/send_targets/192.168.0.11,3260
# service iscsid restart
# iscsiadm -m discovery -t sendtargets -p 192.168.0.11
# iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -l
说明:其中的target名字和target主机地址可能需要按照您的实际情况修改。
FreeNAS
Openfiler
fence_manual
lvmconf --enable-cluster
cman
rgmanager
clvmd
创建一个GFS文件系统:
需要提供的信息:
1、锁类型:
lock_nolock
lock_dlm
2、锁文件的名字,通常即文件系统名
cluster_name:fs_name
3、日志的个数,通常一个节点对应一个日志文件,但建议提供比节点数更多的日志数目,以提供冗余;
4、日志文件大小
5、文件系统大小
Syntax: gfs_mkfs -p lock_dlm -t ClusterName:FSName -j Number -b block_size -J journal_size BlockDevice
如:
# gfs_mkfs -p lock_dlm -t gfscluster:gfslv -j 5 /dev/vg0/gfslv
可以通过其对应挂载点查看gfs文件系统属性信息;
# gfs_tool df /mount_point
挂载GFS文件系统:
mount -o StdMountOpts,GFSOptions -t gfs DEVICE MOUNTPOINT
前提:挂载GFS文件的主机必须是对应集群中的节点;
挂载GFS文件时有如下常用选项可用:
lockproto=[locl_dlm,lock_nolock]
locktable=clustername:fsname
upgrade # GFS版本升级时有用
acl
如果不想每一次启用GFS时都得指定某选项,也可以通过类似如下命令为其一次性指定:
# gfs_tool margs "lockproto=lock_dlm,acl"
载入相应的gfs模块,并查看lv是否成功
# modprobe gfs
# modprobe gfs2
# chkconfig gfs on
# chkconfig gfs2 on
# chkconfig clvmd on
# /etc/init.d/gfs restart
# /etc/init.d/gfs2 restart
# /etc/init.d/clvmd restart
# lvscan
lvmconf --enale-cluster
Openfiler, NAS, SAN
FreeBSD, AIX, power
/lib64
Openfiler: CentOS
NAS: nfs, samba
SAN: IPSAN
webGUI
FreeNAS:
FreeBSD
tgtd
iscsitarget
tgtadm --lld iscsi --op new --mode account --user iscsiuser --password mypass
tgtadm --lld iscsi --op new --mode account --user myuser --password mypass
tgtadm --lld iscsi --op bind --mode account --tid 1 --user iscsiuser
tgtadm --lld iscsi --op bind --mode account --tid 1 --user myuser --outgoing
backing-store /dev/sdb
incominguser iscsiuser mypass
outgoinguser myuser mypass
/etc/iscsi/iscsid.conf
MySQL: HA