文件共享服务在Linux系统上有多种方式,最常用的有Samba,vsftp,iSCSI,NFS这四种方式,如下将分别配置四种不同的文件共享服务.
VSFTP 文件传输 FTP是文件传输协议.用于Internet上的控制文件的双向传输,FTP传输文件属于明文传输,不对传输过程进行任何加密处理,VSFTP服务是Linux系统下的加强版传输服务器,安全性更好.
VSFTP的特点
1.vsftp程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性.
2.任何需要执行较高权限的指令都需要上层程序许可.
3.ftp所需要使用的绝大多数命令都被整合到了vsftp中,基本不需要系统额外提供命令.
4.拥有chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录.
VSFTP的连接类型
控制连接(持续连接)-> TCP21(命令信道)-> 用户收发FTP命令
数据连接(按需连接)-> TCP20(数据信道)-> 用于上传下载数据
主动模式与被动模式
1.很多防火墙在设置的时候都是不允许接受外部发起的连接,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高位端口.
2.而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP20无法和内部网络的客户端建立一个新的连接,造成无法工作.
配置匿名FTP服务器 作用:任意用户,输入FTP服务器IP都可以访问,只需输入用户名ftp即可访问.
[匿名配置常用参数] anonymous_enable=YES anon_umask=022 anon_root=/var/ftp anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_max_rate=0
1.安装VSFTP服务器.
2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.
[root@localhost ~] pasv_enable=YES pasv_min_port=10000 pasv_max_port=15000 anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 anon_root=/ghost local_enable=YES write_enable=YES local_umask=022 xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
3.启动FTP服务,并设置开机自动启动.
[root@localhost ~] [root@localhost ~]
配置本地用户FTP服务器 作用:只有正确输入用户名和密码才能访问数据.
[本地配置常用参数] local_enable=YES local_umask=022 local_root=/var/ftp chroot_local_user=YES local_max_rate=0 ftpd_banner=Welcome to blah FTP service banner_file=/目录 userlist_enable=YES &userlist_deny=YES userlist_enable=YES & userlist_deny=NO
1.安装VSFTP服务器.
2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.
[root@localhost ~] pasv_enable=YES pasv_min_port=10000 pasv_max_port=15000 anonymous_enable=NO chroot_local_user=YES local_enable=YES local_root=/ghost write_enable=YES local_umask=022 xferlog_enable=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
3.创建用户并指定其家目录,创建用于存储数据的目录.
[root@localhost ~] [root@localhost ~]
4.启动FTP服务,并设置开机自动启动.
[root@localhost ~] [root@localhost ~]
配置匿名与本地混合FTP 作用:匿名用户可以查看共享数据,登陆后有自己的存储池.
1.安装VSFTP服务器
2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.
[root@localhost ~] pasv_enable=YES pasv_min_port=10000 pasv_max_port=15000 anonymous_enable=YES anon_umask=022 anon_root=/var/ftp anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_max_rate=0 local_enable=YES local_root=/ghost chroot_local_user=YES write_enable=YES local_umask=022 xferlog_enable=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
3.创建用户并指定其家目录,创建用于存储数据的目录.
[root@localhost ~] [root@localhost ~]
4.启动FTP服务,并设置开机自动启动.
[root@localhost ~] [root@localhost ~]
配置虚拟用户FTP服务器 作用:有时候创建本地用户过多,严重影响系统效率,所有我们要使用虚拟用户模式.
[虚拟配置常用参数] anon_world_readable_only=NO anon_upload_enable=YES anon_world_readable_only=NO anon_mkdir_write_enable=YES anon_world_readable_only=NO anon_other_write_enable=YES
1.安装相应软件包,libdb-utls是数据库包.
写入相应账号以及密码yum install -y libdb-utils 写入相应账号以及密码yum install -y vsftpd
2.配置vlogin文件,vlogin文件名称可自定义,写入相应账号以及密码.
[root@localhost ~] Lyshark 123456
3.将写好的文件加密,并转换成vlogin.db数据库文件
4.设置数据库文件的权限,保证安全.
5.覆盖编辑PAM文件,写入以下内容.
[root@localhost ~] auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
6.创建一个映射账号virtual,所有的登陆请求都是virtual.
7.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.
[root@localhost ~] pasv_enable=YES pasv_min_port=10000 pasv_max_port=15000 anonymous_enable=NO local_enable=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES guest_username=virtual listen=YES listen_port=21 pam_service_name=vsftpd.pam user_config_dir=/etc/vsftpd_user_conf user_sub_token=$USER
8.创建对应文件(用于保存权限文件).
[root@localhost ~] [root@localhost ~]
9.编辑文件给指定用户分配权限,用匿名用户权限分配.
[root@localhost ~] local_root=/home/ftp/$USER anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES chroot_local_user=YES
10.启动FTP服务,并设置开机自动启动.
[root@localhost ~] [root@localhost ~]
OpenSSL+FTP 加密传输 1.查看是否安装OpenSSL包.
2.生成SSL加密密钥对.
[root@localhost ~] [参数说明] req -new -x509 -nodes -out -keyout
3.把生成的证书放入特定目录下,并给予最低权限,保证安全.
[root@localhost ~] [root@localhost ~]
4.在VSFTP主配置中文件加入以下参数.
[root@localhost ~] ssl_enable=YES ssl_tlsv1=YES ssl_sslv2=YES ssl_sslv3=YES allow_anon_ssl=YES force_anon_logins_ssl=YES force_anon_data_ssl=YES force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/ssl/certs/vsftpd.pem
5.启动FTP服务,并设置开机自动启动.
[root@localhost ~] [root@localhost ~]
Samba 文件共享 smb: 实现资源共享、权限验证 -> TCP 139 445 nmb: 实现计算机名解析 -> UDP 137
Samba和FTP的区别
Samba可以实现跨平台的文件传输,并且支持在线修改,这一点是它和FTP服务器的明显区别.
Linux 系统之间的资源共享,我们使用的是NFS协议.
Windows 系统之间的资源共享,我们使用的是NetBIOS协议.
Linux 和 Windows 之间资源共享我们就要使用SMB协议了.CIFS协议.
匿名验证Samba配置 匿名Samba的主要作用是,在局域网内编辑共享文件,比如你有一个word文件需要让大家填写,此时我们就可以使用Samb服务将Word文档匿名分享出去,让大家填写文档
◆配置服务端◆
1.首先通过yum,来安装samba服务程序,恰巧samba服务名也是samba
[root@localhost ~] Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager. Package samba-4.7.1-6.el7.x86_64 already installed and latest version Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version Nothing to do
2.然后创建一个共享目录,这个目录主要用来存储一些文件,后期要共享出去
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
3.编辑Samba主配置文件,在配置文件最下面创建匿名共享区域,如果有多个匿名区域可以继续往下写配置
[root@localhost ~] 6 [global] 7 workgroup = SAMBA 8 security = user 9 map to guest=Bad User ..... 38 39 [smb_file] 40 comment=hello guest 41 path=/smb_file 42 browseable=yes 43 guest ok=yes 44 writable=yes 45 public=yes
4.重启SMB服务,并设置开机自启动
[root@localhost ~] [root@localhost ~]
◆配置Linux客户端◆
1.首先想要使用Samba资源,需要在Linxu客户端安装一个Samba的客户端工具,下面就开始安装吧
[root@localhost ~] Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager. Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version Nothing to do
2.匿名用户访问,我们可以直接使用下面的命令无需输入密码直接扫描资源,并使用
[root@localhost ~] Enter SAMBA root s password: Sharename Type Comment --------- ---- ------- print $ Disk Printer Drivers smb_file Disk hello guest IPC$ IPC IPC Service (Samba 4.7.1) Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- ------- [root@localhost ~] Enter SAMBA root s password: Try "help" to get a list of possible commands. smb: \> ls . DR 0 Mon Nov 5 04:53:30 2018 .. DR 0 Mon Nov 5 04:45:11 2018 17811456 blocks of size 1024. 16582792 blocks available smb: \>
◆配置Windows客户端◆
运行CMD(Win+R) > 输入:\\服务器IP\ 共享资源名 C:\Users\LyShark>net use * /del 你有以下的远程连接: \\192.168.1.20\smb_file 继续运行会取消连接。 你想继续此操作吗? (Y/N) [N]: y 命令成功完成。
密码验证Samba配置 基于密码验证的Samba的常用作用是,在局域网内,实现加密访问,只有知道相应密码的人才能访问指定资源
◆配置服务端◆
1.首先通过yum,来安装samba服务程序,恰巧samba服务名也是samba
[root@localhost ~] Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager. Package samba-4.7.1-6.el7.x86_64 already installed and latest version Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version Nothing to do
2.然后创建一个共享目录,这个目录主要用来存储一些文件,后期要共享出去
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
3.编辑Samba主配置文件,在配置文件最下面创建共享区域,如果有多个区域可以继续往下写配置
[root@localhost ~] 39 [smb_file] 40 comment=hello admin 41 path=/smb_file 42 browseable=yes 43 guest ok=no 44 writable=yes
4.通过命令管理,创建一个系统用户,并转换为Samba用户
[root@localhost ~] [root@localhost ~] ----------------------------------------------------------------- [参数说明] smbpasswd [选项] 账户名称 -a -x -d -e ----------------------------------------------------------------- [root@localhost ~] [root@localhost ~] new password: retype new password: Unix username: guest NT username: Account Flags: [U ] User SID: S-1-5-21-2500030998-3215874083-1041928306-1001 Primary Group SID: S-1-5-21-2500030998-3215874083-1041928306-513 Full Name: Home Directory: \\localhost\guest HomeDir Drive: Logon Script: Profile Path: \\localhost\guest\profile Domain: LOCALHOST Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Wed, 06 Feb 2036 10:06:39 EST Kickoff time: Wed, 06 Feb 2036 10:06:39 EST Password last set : Mon, 05 Nov 2018 06:23:37 EST Password can change: Mon, 05 Nov 2018 06:23:37 EST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [root@localhost ~] admin:1001: guest:1002:
5.重启SMB服务,并设置开机自启动
[root@localhost ~] [root@localhost ~]
◆配置Linux客户端◆
1.首先想要使用Samba资源,需要在Linxu客户端安装一个Samba的客户端工具,下面就开始安装吧
[root@localhost ~] Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager. Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version Nothing to do
2.用户访问,我们可以直接使用下面的命令输入密码扫描资源,并使用
[root@localhost ~] Enter SAMBA dmin s password: Sharename Type Comment --------- ---- ------- print $ Disk Printer Drivers smb_file Disk hello admin IPC$ IPC IPC Service (Samba 4.7.1) admin Disk Home Directories Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- ------- [root@localhost ~] Enter SAMBA dmins password: Try "help" to get a list of possible commands. smb: \> ls . D 0 Mon Nov 5 06:30:02 2018 .. DR 0 Mon Nov 5 06:17:37 2018 lyshark N 988 Mon Nov 5 06:23:28 2018 17811456 blocks of size 1024. 16584148 blocks available
◆Linux挂载Samba◆
1.将远程的smb_file共享目录,挂载到本地的/mnt下,我们可以执行以下命令
[文件格式] [/smb_file共享目录][挂载到/mnt] [username=smb用户名][password=smb密码] [root@localhost ~] [root@localhost ~] [root@localhost ~] Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 17G 1.2G 16G 7% / //192.168.1.20/smb_file 17G 1.2G 16G 7% /mnt
NFS 实现文件共享 NFS 即网络文件系统,是一种使用于分布式文件系统的协议,NFS 功能是通过网络让不同的机器,不同的操作系统能够彼此分享各自的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法.
目前NFS有三个版本,其常用的版本解析
NFSv2:是一个古老的版本,但却被众多的操作系统所支持,这样兼容性更好.
NFSv3:拥有更多的特点,包括更快的速度,更大的单个文件大小,对TCP的支持.
NFSv4:提供有状态连接,共容易追踪,安全性增强,RHEL7上默认4版本协议.
在启动NFS Server之前,首先要启动RPC服务否则NFS Server就无法向RPC服务区注册,另外如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失.因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册.
NFS系统的守护进程介绍
RPC:(Remote Procedure Call Protocol),远程过程调用协议
NFS:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
RPCbind:主要功能是进行端口映射工作,和端口代理分配等
客户端NFS和服务端NFS通讯过程
首先服务器端启动RPC服务,并开启111端口
启动NFS服务,并向RPC注册端口信息
客户端启动RPC,向服务端的RPC服务请求服务端的NFS端口
服务端的RPC服务,反馈NFS端口信息给客户端
客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输
NFS服务器是通过读取/etc/exports
配置文件设定那个客户端可以访问那些NFS共享文件系统,该文件书写原则有如下几条.
空白行的内容将被忽略
以#号开头的内容是注释
可以通过\转义字符换行
每个共享文件系统需要独立一行条目
客户端的主机列表需要使用空格隔开
接下来我们来看一下一条完整的规则条目是如何书写的吧,需要注意的是客户端主机可以是一个网段,单台主机或者是主机名称,在使用时应该灵活运用.
[共享目录] [允许谁来访问][权限] [可用主机名][权限] [其他主机权限] /nfs 192.168.1.1(rw) localhost(rw) *(ro,sync ) /nfs 192.168.1.0/24(rw) localhost(rw) *(ro,sync ) /nfs 192.168.1.1(rw) 192.168.1.2(ro) 192.168.1.3(ro,sync )
如上所示,有个权限列表,NFS配置中可以给一个共享路径指定相关权限,NFS的默认属性为ro,sync,wdelay,root_squash
,具体的NFS属性列表,我们可以参考一下列表.
NFS权限选项
功能描述信息
ro
以只读方式共享
rw
以读写方式共享
sync
同步写入磁盘
async
异步写入磁盘
wdelay
延迟写入操作
root_squash
屏蔽远程root权限
no_root_squash
不屏蔽远程root权限
all_squash
屏蔽所有远程用户权限
以上的几个说明信息,是我们最常用的几个,当然还有很多这样的配置选项,这里就不依次列举了,更多内容请百度了解.
NFS 服务端配置 1.在配置NFS共享文件之前,我们先来放行NFS的几个常用服务,并将防火墙默认设置为拒绝状态.
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
2.通过YUM仓库快速安装NFS相关的软件包.
[root@localhost ~] Package rpcbind-0.2.0-47.el7.x86_64 already installed and latest version Package 1:nfs-utils-1.3.0-0.61.el7.x86_64 already installed and latest version Nothing to do
3.创建需要共享的文件,并拷贝相关的文件内容,并设置SeLinux规则.
[root@localhost ~] [root@localhost ~] [root@localhost ~]
4.修改NFS主配置文件,并写入要访问的主机列表.
[root@localhost ~] /public 192.168.1.0/24(rw,sync )
5.重启NFS服务,和守护进程,并设置开机自启动.
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
NFS 客户端配置 1.通过YUM仓库快速安装NFS相关的软件包.
[root@localhost ~] Package rpcbind-0.2.0-47.el7.x86_64 already installed and latest version Package 1:nfs-utils-1.3.0-0.61.el7.x86_64 already installed and latest version Nothing to do
2.创建挂载点,并设置SeLinux规则.
[root@localhost ~] [root@localhost ~]
NFS挂载演示: 手动挂载目录,可通过mount
命令来实现,具体的挂载参数如下.
[root@localhost ~] [root@localhost ~] Filesystem Type Size Used Avail Use% Mounted on 192.168.1.5:/public nfs4 17G 1.9G 16G 12% /mnt/nfsmount
具体的挂载详细参数如下: ● Intr:当服务器宕机时终端NFS请求 ● nfsvers=4:指定使用那个版本的协议 ● noacl:关闭ACL,仅与老版本兼容 ● nolock:关闭文件锁机制 ● noexec:挂载时屏蔽二进制程序 ● port=num:指定NFS服务器端口号 ● rsize=num:设置最大数据块大小(读取) ● wsize=num:设置最大数据块大小(写入) ● tcp:使用TCP协议挂载 ● udp:使用UDP协议挂载
nfsstat命令: NFS提供了查看NFS共享状态功能.
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
rpcinfo命令: NFS生成RPC信息报表功能.
[root@localhost ~] [root@localhost ~] [root@localhost ~]
showmount命令: NFS使用shomount命令可以查看远程主机共享列表.
[root@localhost ~] [root@localhost ~] [root@localhost ~]
exportfs命令: 此命令允许root在不重启NFS服务情况下,选择共享或取消共享文件.
[root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
配置固定端口: 我们可以修改配置文件来实现配置固定的共享端口号.
[root@localhost ~] RQUOTAD_PORT=5001 LOCKD_TCPPORT=5002 LOCKD_UDPPORT=5002 MOUNTD_PORT=5003 STATD_PORT=5004
设置自动挂载: 修改自动挂载目录,写入以下内容即可实现自动挂载.
[root@localhost ~] 192.168.1.1:/public /mnt/nfsmount nfs default 0 0
iSCSI 磁盘共享服务 iSCSI技术是一种新储存技术, iSCSI 提供了在 IP 网络封装 SCSI 命令,且以TCP/IP协议传输.
配置iSCSI服务端 1.通过yum安装iSCSI服务端,此处已安装成功,略过本步骤
[root@localhost ~] Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager. Package targetd-0.8.6-1.el7.noarch already installed and latest version Package targetcli-2.1.fb46-1.el7.noarch already installed and latest version Nothing to do
2.安装成功后,手动启动iSCSI服务,并设置开机自启动 (注意:iSCSI服务程序为targetd)
[root@localhost ~] [root@localhost ~]
3.查看iSCSI服务端共享资源,targetcli是用于管理iSCSI服务的专用命令,在执行命令是可看到交互界面.
[root@localhost ~] Warning: Could not load preferences file /root/.targetcli/prefs.bin. targetcli shell version 2.1.fb46 Copyright 2011-2013 by Datera, Inc and others. For help on commands, type 'help' . /> ls o- / .................................................................... [...] o- backstores ......................................................... [...] | o- block ............................................................ [Storage Objects: 0] | o- fileio ........................................................... [Storage Objects: 0] | o- pscsi ............................................................ [Storage Objects: 0] | o- ramdisk .......................................................... [Storage Objects: 0] o- iscsi .............................................................. [Targets: 0] o- loopback ........................................................... [Targets: 0] />
4.进入/backstores/block共享设备位置,并创建共享设备名称 (注意:/backstores/block是iSCSI服务端配置共享设备的位置)
/> cd backstores/block /backstores/block> create disk0 /dev/sdb Created block storage object disk0 using /dev/sdb. /backstores/block> cd / /> ls o- / ............................................................. [...] o- backstores .................................................. [...] | o- block ..................................................... [Storage Objects: 1] | | o- disk0 ................................................... [/dev/sdb (20.0GiB) write-thru deactivated] | | o- alua .................................................. [ALUA Groups: 1] | | o- default_tg_pt_gp .................................... [ALUA state: Active/optimized] | o- fileio .................................................... [Storage Objects: 0] | o- pscsi ..................................................... [Storage Objects: 0] | o- ramdisk ................................................... [Storage Objects: 0] o- iscsi ....................................................... [Targets: 0] o- loopback .................................................... [Targets: 0] />
5.创建iSCSI target名称及配置共享资源,iSCSI target 名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串
/> cd iscsi /iscsi> create Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /iscsi> /iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/ /iscsi/iqn.20....8c7dcc63aea8> ls o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ........ [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] /iscsi/iqn.20....8c7dcc63aea8> cd tpg1/luns /iscsi/iqn.20...ea8/tpg1/luns> create /backstores/block/disk0 Created LUN 0.
6.配置访问控制列表(ACL),iSCSI设备无需密码进行验证,只需知道标签名称即可通过,因此需要在iSCSI服务端的配置文件中写入一串能够验证信息的名称,这里推荐在系统生成的标签后面加上标识符,:client参数,保证标签唯一性,同时方便区别和管理
/> cd iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 /iscsi/iqn.20....8c7dcc63aea8> cd tpg1/acls /iscsi/iqn.20...ea8/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client Created mapped LUN 0. /iscsi/iqn.20...ea8/tpg1/acls>
7.设置iSCSI服务器的监听IP地址和端口号,即在portals参数目录中写上服务器的IP地址,接下来系统会自动开启服务器192.168.1.20的3260号端口,为外部提供共享存储服务
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/ /iscsi/iqn.20....8c7dcc63aea8> cd tpg1/portals/ /iscsi/iqn.20.../tpg1/portals> ls o- portals ...................................................................... [Portals: 1] o- 0.0.0.0:3260 ............................................................... [OK] /iscsi/iqn.20.../tpg1/portals> /iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260 Deleted network portal 0.0.0.0:3260 /iscsi/iqn.20.../tpg1/portals> create 192.168.1.20 Using default IP port 3260 Created network portal 192.168.1.20:3260. /iscsi/iqn.20.../tpg1/portals> ls o- portals ...................................................................... [Portals: 1] o- 192.168.1.20:3260 .......................................................... [OK] /iscsi/iqn.20.../tpg1/portals>
8.配置全部妥当后检查一下,没问题的话保存.
/iscsi/iqn.20.../tpg1/portals> cd / /> /> ls o- / ................................................................... [...] o- backstores ........................................................ [...] | o- block ........................................................... [Storage Objects: 1] | | o- disk0 ......................................................... [/dev/sdb (20.0GiB) write-thru activated] | | o- alua ........................................................ [ALUA Groups: 1] | | o- default_tg_pt_gp .......................................... [ALUA state: Active/optimized] | o- fileio .......................................................... [Storage Objects: 0] | o- pscsi ........................................................... [Storage Objects: 0] | o- ramdisk ......................................................... [Storage Objects: 0] o- iscsi ............................................................. [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ..... [TPGs: 1] | o- tpg1 .......................................................... [no-gen-acls, no-auth] | o- acls ......................................................................... [ACLs: 1] | | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client ......... [Mapped LUNs: 1] | | o- mapped_lun0 .............................................................. [lun0 block/disk0 (rw)] | o- luns ......................................................................... [LUNs: 1] | | o- lun0 ..................................................... [block/disk0 (/dev/sdb) (default_tg_pt_gp)] | o- portals ...................................................................... [Portals: 1] | o- 192.168.1.20: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 [root@localhost ~]
9.重启SCSI服务,到此服务器已经配置完毕
[root@localhost ~] [root@localhost ~]
配置Linux客户端 1.安装iSCSI客户端组件,在RHEL7系统中已经默认集成,如果没有请执行以下步骤,此处就略过
[root@localhost ~] Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager . Package iscsi-initiator-utils-6.2.0.874-7.el7.x86_64 already installed and latest version Package iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64 already installed and latest version Nothing to do
2.编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进来,然后重启iscsid服务程序,并将其加入到开机自启动列表
[root@localhost ~] [root@localhost ~] [root@localhost ~] InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client [root@localhost ~] [root@localhost ~]
3.发现iSCSI服务端存储资源,其中:-m discovery 参数的目的是扫描并发现存储资源,-t st 参数为执行扫描操作的类型,-p 参数后为iSCSI服务端的IP地址
[root@localhost ~] 192.168.1.20:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 [root@localhost ~]
4.接下来准备登陆iSCSI服务器,其中:-m node 参数为将客户端主机作为一台节点服务器,-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 参数为要使用的存储标签,-p 后面为iSCSI服务器的IP地址, –login 参数为登陆服务器,如果加 -u参数为卸载挂载资源
[root@localhost ~] Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] (multiple) Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] successful.
5.此时在iSCSI客户端上会多出一个/dev/sdb磁盘设备文件,接下来我们直接格式化挂在到/network-disk目录下
root@localhost ~] brw-rw----. 1 root disk 8, 0 Nov 4 11:45 /dev/sda brw-rw----. 1 root disk 8, 1 Nov 4 11:45 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 4 11:45 /dev/sda2 brw-rw----. 1 root disk 8, 16 Nov 4 12:06 /dev/sdb [root@localhost ~] meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 17G 1.2G 16G 7% / devtmpfs 98M 0 98M 0% /dev tmpfs 110M 0 110M 0% /dev/shm /dev/sda1 1014M 130M 885M 13% /boot /dev/sr0 4.4G 4.4G 0 100% /mnt /dev/sdb 20G 33M 20G 1% /network-disk
iSCSI客户端经过以上步骤之后,这个设备文件就可以像使用本地磁盘文件一样的操作啦
6.接下来配置一下自动挂载功能,需要注意的是,挂载选项必须为_netdev,写错的话系统无法开机.
由于/dev/sdb/是一个网络设备,而iSCSI是基于TCP/IP网络传输数据的,因此在配置自动挂载是应该加入_netdev参数,说明其是一个网络设备
[root@localhost /] total 0 lrwxrwxrwx. 1 root root 10 Nov 4 11:45 12b3708e-7ca4-4911-bfa2-57b85960e8e5 -> ../../dm-0 lrwxrwxrwx. 1 root root 9 Nov 4 11:45 2018-03-22-19-04-59-00 -> ../../sr0 lrwxrwxrwx. 1 root root 10 Nov 4 11:45 3d4eea6b-1db9-4d30-9174-bfac6faa4cab -> ../../sda1 lrwxrwxrwx. 1 root root 10 Nov 4 11:45 e791c0bf-f6e9-4843-b18d-be40cf3964c2 -> ../../dm-1 lrwxrwxrwx. 1 root root 9 Nov 4 12:08 ff233cc4-2255-4973-a686-9d394384faf6 -> ../../sdb [root@localhost /] [root@localhost /] /dev/mapper/rhel-root / xfs defaults 0 0 UUID=3d4eea6b-1db9-4d30-9174-bfac6faa4cab /boot xfs defaults 0 0 UUID=ff233cc4-2255-4973-a686-9d394384faf6 /network-disk xfs defaults,_netdev 0 0 [root@localhost /]
如需配置Windows客户端只需要执行以下步骤. 1.单击控制面板 –> 管理工具 –> iSCSI发起程序 2.在目标选项卡 –> 输入服务器IP地址 –> 单击快速连接 3.选择配置选项卡 –> 单击更改 –> 在标签末尾加上自定义的字符,此处为:client –> 单击确定 4.单击目标选项卡 –> 单击下方的连接按钮 5.单击此电脑 –> 右键选择管理 –> 选择磁盘管理 –> 即可看到磁盘信息