前言
环境:centos7.9
什么是存储storage
Linux存储五层

存储的分类
| 存储分类 | 描述 |
|---|---|
| DAS直连式存储(direct assess/attach storage) | 如:机箱里的disk,或通过接口直连到系统总线上的disk(如U盘,移动硬盘) |
| NAS网络附加存储(network attched storage) | 通过交换机,路由器连接起来,共享的是目录,如:nfs、Samba、ftp |
| SAN存储区域网络(storage area network) | 通过交换机,路由器连接起来的高速存储网络,共享的是块设备,如:sdb、dbc |
备注:NAS共享的是目录,应用服务器直接mount挂载就可以使用;SAN共享的快设备,应用服务器挂载之后还需要分区、格式化之后才能使用。
存储类型的分类
| 存储类型的分类 | 描述 |
|---|---|
| 文件存储 | NAS都属于这一种,简单来说就是mount后直接使用 |
| 快存储 | SAN都属于这一类,简单来说就是类似于/dev/sdb这种,要分区、格式化后才能使用 |
| 对象存储 | 通俗来讲,就是存储是什么形式,怎么做的都不需要关注,使用的人只需要直接使用程序接口去访问,进行get下载与put上传即可 |
模拟SAN存储服务器
DAS直连式存储太简单了,我们的U盘就是,这种我们不讲, NAS网络附加存储我们其实也讲过,nfs就能实现,而nfs的配置可以查看之前我写的文章,本篇我们主要讲SAN存储区域网络,即块存储,在此,我们模拟IP-SAN之iscsi实现。
准备工作
先准备两台虚拟机:存储服务器A、应用服务器B;同时存储服务器A新加1块磁盘,如下所示,为了简单,在存储服务器A我已经加了1块1G的硬盘:
[root@storage ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk sda1 8:1 0 300M 0 part /boot sda2 8:2 0 39.7G 0 part centos-root 253:0 0 35.7G 0 lvm / centos-swap 253:1 0 4G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk #这块硬盘就是新加了,为了方面模拟 sr0 11:0 1 1024M 0 rom [root@storage ~]#
存储服务器A-安装软件、共享硬盘
在存储服务器A中安装epel源:
[root@storage ~]# yum install epel-release -y #安装epel源 [root@storage ~]# yum install scsi-target-utils -y #安装scsi-target-utils [root@storage ~]# rpm -qc scsi-target-utils #查看scsi-target-utils有哪些配置文件 /etc/sysconfig/tgtd /etc/tgt/conf.d/sample.conf /etc/tgt/targets.conf /etc/tgt/tgtd.conf [root@storage ~]# vim /etc/tgt/targets.conf #编辑配置文件 [root@storage ~]# vim /etc/tgt/targets.conf # Set iSNS parameters, if needed backing-store /dev/LVM/somedevice #
# This is a sample config file for tgt-admin. # # The "#" symbol disables the processing of a line. # Set the driver. If not specified, defaults to "iscsi". default-driver iscsi <target storage:data> #这段target就是新加的,storage:data共享名,可以自定义 backing-store /dev/sdb #/dev/sdb就是共享的快设备,既可以是整块硬盘,也可以是一个分区或者dd的一个文件等 allow-in-use yes </target> # Set iSNS parameters, if needed #iSNSServerIP 192.168.111.222 #iSNSServerPort 3205 #iSNSAccessControl On #iSNS On # Continue if tgtadm exits with non-zero code (equivalent of # --ignore-errors command line option) #ignore-errors yes [root@storage ~]# systemctl start tgtd #启动tgtd服务 [root@storage ~]# systemctl enable tgtd #设置开机自启 [root@Oracle11g ~]# lsof -i:3260 #tgtd服务的端口是3260 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tgtd 2549 root 6u IPv4 36160 0t0 TCP *:iscsi-target (LISTEN) tgtd 2549 root 7u IPv6 36161 0t0 TCP *:iscsi-target (LISTEN) [root@Oracle11g ~]#
应用服务器B-安装软件、挂载
[root@nginx /]# yum install iscsi-initiator-utils -y #安装iscsi-initiator-utils [root@nginx /]# iscsiadm -m discovery -t sendtargets -p 192.168.118.131 #发现存储端共享的设备,会把相关信息保存 192.168.118.131:3260,1 storage:data #发现存储端共享了一个名为storage:data快设备 [root@nginx /]# lsblk #查看硬盘,这是还没有存储端的硬盘挂载过来 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk sda1 8:1 0 1G 0 part /boot sda2 8:2 0 9G 0 part centos-root 253:0 0 8G 0 lvm / centos-swap 253:1 0 1G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom [root@nginx /]# iscsiadm -m node -l #登陆,因为上一步discovery了存储设备并保存了相关信息 Logging in to [iface: default, target: storage:data, portal: 192.168.118.131,3260] (multiple) Login to [iface: default, target: storage:data, portal: 192.168.118.131,3260] successful. [root@nginx /]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk sda1 8:1 0 1G 0 part /boot sda2 8:2 0 9G 0 part centos-root 253:0 0 8G 0 lvm / centos-swap 253:1 0 1G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk #登陆之后,存储端的共享硬盘就挂载过来了 sr0 11:0 1 1024M 0 rom [root@nginx /]# [root@nginx /]# iscsiadm -m node -u #取消登陆,取消链接 Logging out of session [sid: 1, target: storage:data, portal: 192.168.118.131,3260] Logout of [sid: 1, target: storage:data, portal: 192.168.118.131,3260] successful. [root@nginx /]# lsblk #共享硬盘已经取消了,看不到了 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk sda1 8:1 0 1G 0 part /boot sda2 8:2 0 9G 0 part centos-root 253:0 0 8G 0 lvm / centos-swap 253:1 0 1G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom [root@nginx /]# iscsiadm -m node -l #重新登陆,下面我们就可以自由对共享过来的硬盘进行磁盘分区、格式化等操作了 [root@nginx /]# fdisk /dev/sdb fdisk: cannot open /dev/sdb: No such file or directory [root@nginx /]# iscsiadm -m node -l Logging in to [iface: default, target: storage:data, portal: 192.168.118.131,3260] (multiple) Login to [iface: default, target: storage:data, portal: 192.168.118.131,3260] successful. [root@nginx /]# fdisk /dev/sdb #分区,只分一个sdb1进行测试就可以 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x3e423aab. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-, default 2048): Using default value 2048 Last sector, +sectors or +size{
K,M,G} (2048-, default ): Using default value Partition 1 of type Linux and of size 1023 MiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@nginx /]# mkfs.xfs /dev/sdb1 #格式化分区为xfs文件系统 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65472 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@nginx /]# mkdir /data #创建挂载点 [root@nginx /]# mount /dev/sdb1 /data #把磁盘分区挂载到挂载点 [root@nginx /]# df -h #查看所有磁盘 Filesystem Size Used Avail Use% Mounted on devtmpfs 899M 0 899M 0% /dev tmpfs 910M 0 910M 0% /dev/shm tmpfs 910M 9.7M 901M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/mapper/centos-root 8.0G 5.5G 2.6G 69% / /dev/sda1 1014M 239M 776M 24% /boot tmpfs 182M 0 182M 0% /run/user/0 /dev/sdb1 1020M 33M 988M 4% /data #sdb1已经正常挂载到了?data目录,可以正常存储文件了 [root@nginx /]#
问?
总结–SAN存储配置
存储服务器配置如下: [root@storage ~]# yum install epel-release -y #安装epel源 [root@storage ~]# yum install scsi-target-utils -y #安装scsi-target-utils [root@storage ~]# vim /etc/tgt/targets.conf #编辑配置文件 [root@storage ~]# vim /etc/tgt/targets.conf # Set iSNS parameters, if needed backing-store /dev/LVM/somedevice #
# This is a sample config file for tgt-admin. # # The "#" symbol disables the processing of a line. # Set the driver. If not specified, defaults to "iscsi". default-driver iscsi <target storage:data> #这段target就是新加的,storage:data共享名,可以自定义 backing-store /dev/sdb #/dev/sdb就是共享的快设备,既可以是整块硬盘,也可以是一个分区或者dd的一个文件等 allow-in-use yes </target> # Set iSNS parameters, if needed #iSNSServerIP 192.168.111.222 #iSNSServerPort 3205 #iSNSAccessControl On #iSNS On # Continue if tgtadm exits with non-zero code (equivalent of # --ignore-errors command line option) #ignore-errors yes [root@storage ~]# systemctl start tgtd #启动tgtd服务 [root@storage ~]# systemctl enable tgtd #设置开机自启 [root@Oracle11g ~]# lsof -i:3260 #tgtd服务的端口是3260 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tgtd 2549 root 6u IPv4 36160 0t0 TCP *:iscsi-target (LISTEN) tgtd 2549 root 7u IPv6 36161 0t0 TCP *:iscsi-target (LISTEN) [root@Oracle11g ~]# 客户端挂载配置如下: [root@nginx /]# yum install iscsi-initiator-utils -y #安装iscsi-initiator-utils [root@nginx /]# iscsiadm -m discovery -t sendtargets -p 192.168.118.131 #发现存储端共享的设备,会把相关信息保存 192.168.118.131:3260,1 storage:data #发现存储端共享了一个名为storage:data快设备 [root@nginx /]# iscsiadm -m node -l #登陆,因为上一步discovery了存储设备并保存了相关信息 Logging in to [iface: default, target: storage:data, portal: 192.168.118.131,3260] (multiple) Login to [iface: default, target: storage:data, portal: 192.168.118.131,3260] successful. [root@nginx /]# lsblk #查看设备 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk sda1 8:1 0 1G 0 part /boot sda2 8:2 0 9G 0 part centos-root 253:0 0 8G 0 lvm / centos-swap 253:1 0 1G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk #登陆之后,存储端的共享硬盘就挂载过来了,可以自由分区格式化然后使用了 sr0 11:0 1 1024M 0 rom [root@nginx /]# fdisk /dev/sdb #开始分区 fdisk: cannot open /dev/sdb: No such file or directory [root@nginx /]# iscsiadm -m node -l Logging in to [iface: default, target: storage:data, portal: 192.168.118.131,3260] (multiple) Login to [iface: default, target: storage:data, portal: 192.168.118.131,3260] successful. [root@nginx /]# fdisk /dev/sdb #分区,只分一个sdb1进行测试就可以 [root@nginx /]# mkfs.xfs /dev/sdb1 #格式化分区为xfs文件系统 [root@nginx /]# mkdir /data #创建挂载点 [root@nginx /]# mount /dev/sdb1 /data #把磁盘分区挂载到挂载点 [root@nginx /]# df -h #查看所有磁盘分区
NAS是远程通过网络共享目录; SAN是远程通过网络共享块设备;
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210687.html原文链接:https://javaforall.net
