1 预备知识
基本磁盘:基本磁盘有很多缺点,不能扩容,不可跨盘分配,必须连续。添加硬盘——分区(尽量把与系统无关的东西放在非系统盘)——格式化(制作文件系统)——挂载(分区是密闭的空间,挂载是给这个密闭的空间找出口)
LVM:相当于动态磁盘,添加硬盘——pv物理卷加入vg卷组时会分成多个pe物理块,pe物理块与le逻辑块一一等大映射,多个le组成lv——格式化——挂载
raid(磁盘阵列):一堆具有相似规格的磁盘组合在一起就叫磁盘阵列。raid1镜像卷,raid0条带卷(由默认大小是64k的区块组成),raid5(最少有3块磁盘或分区,结合了raid0与raid1的功能,既加快了读写速度,又实现了数据冗余)。生产环境中要么做LVM,要么做raid5级起步。硬raid是基于硬件实现的是有raid卡的,软raid是通过对LVM实行命令实现的
NFS共享目录:用于共享目录与存储
quota(磁盘限额):在iNode上限制创建文件的数量;在数据块上限制创建文件所占的容量。
dd命令是做备份的,if后面是分区或磁盘,of是存储到哪里,bs是每次存储多少,count是缓存多少次。例,dd if=/dev/zero of=/boot.bak
2 存储相关概念
2.1 一般用服务器存储数据,空间不足时可用以下方式解决
1)外接活动硬盘(DAS,direct attached storage):直接连接存储,又称本地存储设备。基本磁盘、LVM与raid是对本地存储设备的管理形式。
2)网络存储服务器(NAS):network attached storage:网络附加存储 ,如nfs/ftp/http。NAS实际上就是一部file server,一般以nfs,samba,ftp,http作为服务器,来完成存储或读取的主要方式。当前主要的NAS软件可以用FreeNAS来进行配置和完成。通过WEB界面直接进行控制。方便、简单、快捷不用专业IT人员进行完成。
3)存储区域网络服务(SAN):storage area network,存储区域网络,IPsan(走的是TCP/IP协议), Fcsan(走的是光纤通道,最快,最常用),FcoEsan(走的是以太网,但也是用光纤连接)
如果有大量的硬盘或使用空间,但主机插槽不够,可以使用SAN。一般可以将SAN视为一个外接式的存储设备。SAN可以通过某些特殊的方式或者介质来提供网络内的主机进行资料的存储。
简单来说SAN即通过光纤通道连接到一群计算机上。在该网络中提供了多主机连接,但并非通过标准的网络拓扑。SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在那里,服务器都可直接存取所需的数据。因为采用了光纤接口,SAN还具有更高的带宽。
3 基于以太网的存储
iscsi(Internet SCSI)属于IPsan, 因为光纤成本太高,从而使用ISCSI。ISCSI是基于C/S架构的,包括:存储设备——server服务器端,存放硬盘和raid设备;主机部分——client客户端,使用存储设备的客户端。属于IPsan,使用端口为TCP的3260 。
iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。
iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。
4 iscsi的实现
4.1 测试环境
两台虚拟机,存储服务器server,IP 为192.168.1.1,客户端client,IP为192.168.1.2 。每台客户端对应一个target(i)或者一个sever(i),其中i=1,2,……
4.2 配置服务器端
第一步 安装软件 #yum install targetcli -y
第二步 先添加硬盘,然后创建硬盘,有三种方式:
方式1:从linux系统层面创建img镜像文件。
创建img类型的硬盘存放目录:mkdir -v /iscsihd
创建img镜像文件:dd if=/dev/zero of=/iscsihd/disk01.img bs=1M count=100
查看创建成功的img镜像文件:#cd /iscishd #du -sh disk01.img
创建img镜像文件:dd if=/dev/zero of=/iscsihd/disk02.img bs=2M count=100
查看创建成功的img镜像文件:#cd /iscishd #du -sh disk02.img
方式2:创建独立分区 #fdisk /dev/sdb (sdb1 1G ; sdb2 2G)
方式3:创建LV——lv01
将硬盘分区:fdisk /dev/sdc sdc1 全部
创建pv: pvcreate /dev/sdc1
创建vg: vgcreate vg01 /dev/sdc1
创建lv: lvcreate -L 5G -n lv01 vg01
查看创建完成的lv:lvs或lvscan或lvdisplay
查看分区: lsblk
注:这三种方式并不是必须都得使用,任意选择使用
第三步 配置iscsi
1)#targetcli,然后进入“后台存储文件”目录下“fileio"目录 #cd backstores/fileio
#create disk01 /iscsihd/disk01.img
#create disk02 /iscsihd/disk02.img
#create disk03 /dev/sdb1
#create disk04 /dev/sdb2
#create disk05 /dev/vg01/lv01 //将创建好的设备放到后台备用
#/backstores/fileio/ls //查看已经创建完成的LUNS
2)#cd /iscsi
#create iqn.2018-01.com.server.www:server01
注:规定iqn格式为 iqn.年-月.FQDN倒写:存储设备名
*/创建存储设备—server01
3)开启iscsi服务及监听端口 //默认是已经开启的,不用更改
#cd iqn.2018- 01.com.server.www:server01/tpg1/portals
# delete ip_address=0.0.0.0 ip_port=3260 //删除IP及端口
# create ip_address=192.168.1.2 ip_port=8888 //指定某个IP的某个端口
4)配置LUNS,增加所要用的硬盘设备,lun就是逻辑单元号,便于管理
#cd iqn.*****server01/tpg1/luns
#create /backstores/fileio/disk01
#create /backstores/fileio/disk02
#create /backstores/fileio/disk03
*/将后台设备加入到前台使用
5)设置访问权限
#cd /iscsi/iqn.******.server01/tpg1
#set attribute generate_node_acls=1
注:默认情况下是,no acls——未开启ACL访问控制,no auth——未开启全局权限设置。关闭全局认证用 #set attribute authentication=0
*/开启ACL访问控制列表
#cd acls
#create iqn.2018-01.com.server.www:acl01
#cd iqn.*****acl01 */创建认证iqn,名字为acl01
#set auth userid = test //该用户可以不是系统的有效用户
#set auth password = 123123 */创建认证用户及密码。忘记密码就去 /etc/target/saveconfig.json下查看
#exit //保存并退出
注:将target设置为开机自启动,#systemctl enable target。就算是设置了开机自启动,服务器重启后用targetcli 设置的iscsi服务都会失效。
4.3 配置客户端及测试
第一步 安装软件 #yum install iscsi-initiator-utils -y
第二步 配置验证区域名称及密码,认证ACL的iqn
#vim /etc/iscsi/initiatorname.iscsi
添加 InitiatorName=iqn.2018-01.com.server.www:acl01
第三步 配置添加账户和密码,#vim /etc/iscsi/iscsid.conf
54:取消注释,开启认证,认证方式为CHAP(TCP三次握手)
58:取消注释,将username改为test ——认证用户
59:取消注释,将password改为123123 ——认证密码
例:58 node.session.auth.username = test
59 node.session.auth.password = 123123
第四步 重启服务 #systemctl restart iscsid
开机自启 #systemctl enable iscsid
4.4 在客户端的其他相关操作
1)查找iscsi服务:iscsiadm –m discovery –t sendtargets –p 192.168.1.2
//检测IP地址为192.168.1.2 的主机上是否有可用的存储设备
-m discovery 通过检测方式使用iscsiadmin命令
-t sendtargets 通过iscsi协议,检测设备所拥有的信息
-p ip_addr:port 指定server的IP地址和端口号,默认不写则为3260
查询本地是否收到server端的target: ll -R /var/lib/iscsi/nodes
找出本机上所有检测到的target信息:iscsiadm –m node -o show
2)iscsiadm –m node –T iqn.2018- 01.com.server.www:server01 --login
//登陆到iscsi空间
iscsiadm –m node –T iqn.2018- 01.com.server.www:server01 --logout
//登出iscsi空间
3)添加/删除/更新target
iscsiadm –m node –o delete –T iqn.2018- 01.edu.niliu.www:niliustorage1
//删除target
#iscsiadm –m node 参数说明 -o delete 删除 -o update 更新 -o new 增加
5 在客户端用iscsi提供的磁盘创建lvm,并实现自动挂载
第一步 将指定的target作为自动链接:
iscsiadm -m node -T iqn.2016-07.com.server.www:srvstores1 -p 192.168.1.2 -o update -n node.startup -v automatic
第二步 创建LV并格式化
#pvcreate /dev/sde #vgcreate vgtest /dev/sde
#lvcreate -L 500M -n vgtest lvtest #mkfs.ext4 /dev/vgtest/lvtest
第三步 创建挂载点 #mkdir /mnt/lvtest
挂载LV #mount /dev/vgtest/lvtest /mnt/lvtest
第四步 设置自动挂载,编辑/etc/fstab文件:vim /etc/fstab
/dev/vgtest/lvtest /mnt/lvtest ext4 defaults,_netdev 0 0
第三步 重启测试
转载请注明出处,谢谢!