###############
#####samba文件共享
###############
能在linux与windows之间进行文件案共享
通用Internet文件系统(CIFS)也称为服务器信息块(SMB),是适用于Microsoft
Windows服务器和客户端的标准文件和打印机共享系统。
Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux
打印机作为CIFS/SMB打印机共享进行共享。
1>服务器安装及基本调试
服务器ip:172.25.254.112
hostnamectl set-hostname samba.example.com
yum install samba-client samba-common samba -y
systemctl stop firewalld.service
setsebool -P samba_enable_home_dirs on
systemctl start smb
smbpasswd -a student ##student用户必须是本机存在的用户、
##不能添加系统不存在的用户:
******************************
[root@localhost ~]# smbpasswd -a yang
New SMB password:
Retype new SMB password:
Failed to add entry foR user yang.
******************************
pdbedit -L ##列出smb用户
pdbedit -x student ##删除smb用户
pdbedit -L
smbpasswd -a student
测试(ip:172.25.254.12):
如果出现以下报错:
[root@desktop ~]# smbclient -L //172.25.254.112 -U student
Enter students password:
protocol negotiation failed: NT_STATUS_IO_TIMEOUT
解决方法:
服务器/etc/hosts 下加上服务器ip和名字
2>samba共享目录
cd /
mkdir westos
cd westos/
touch file{1..10}
ls
vim /etc/samba/smb.conf
---------
[westos1] ##共享目录的名字(自己定义)
comment = local directory westos ##共享说明
path = /westos ##文件路径
---------
systemctl restart smb
测试(ip:172.25.254.12):
smbclient //172.25.254.112/westos -U student
登陆上去之后不能ls查看 因为selinux标签没有改变
**共享 用户自己建立的目录时需要修改该目录的selinux标签属性,此方式只针对修改目录
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -FvvR /westos/
smbclient //172.25.254.112/westos -U student
此时登陆上去之后ls能查看到目录下的文件
vim /etc/samba/smb.conf
----------
[linux]
comment = local directory westos
path = /linux
-----------
systemctl restart smb
smbclient -L //172.25.254.112 -U student
cd /
mkdir linux
touch linux/tong
**共享 系统建立的目录时需要修改的selinux sebool属性,此方式修改针对所有目录,
一旦开放,selinux标签不再保护目录访问
setsebool -P samba_export_all_rw on ##可以读写
setsebool -P samba_export_all_ro on ##只读
smbclient //172.25.254.112/linux -U student
用户要在共享目录下建立文件夹(拥有写权限)必须具备三点:
1>服务器分享的目录具有写权限
2>selinux sebool 开启写权限
3>samba配置文件里添加了允许写的参数(samba服务允许写的权力)
在测试端登陆后用ls查看:
smb: \> ls
. D 0 Mon Mar 20 16:42:45 2017
.. D 0 Mon Mar 20 15:59:53 2017
aa D 0 Mon Mar 20 16:21:39 2017
ss D 0 Mon Mar 20 16:41:20 2017
gile N 0 Mon Mar 20 16:42:09 2017
file N 0 Mon Mar 20 16:42:45 2017
10473900 blocks of size 1024. 7240984 blocks available
##服务器自己建立的文件或目录显示的是 N 通过samba服务在共享目录下建立的文件或目录显示的是 D
3>匿名访问
vim /etc/samba/smb.conf
------------
125 map to guest = bad user ##所有未认证的用户影射为guest(给guest一个身份)
321 [westos]
322 comment = local directory westos
323 path = /westos
324 guest ok = yes ##开启匿名
------------
systemctl restart smb
测试(ip:172.25.254.12):
smbclient //172.25.254.112/westos
mount //172.25.254.112/westos /mnt -o username=guest
umount /mnt
4>samba共享目录的管理参数
vim /etc/samba/smb.conf
-----------------
[westos]
comment = local directory westos
path = /westos
guest ok = yes
writeable = yes ##允许所有人可写
# write list = yang ##只允许用户yang可写
# write list = @yang ##只允许用户组yang可写
# valid users = yang ##只允许用户yang登陆
# valid users = +yang ##只允许用户组yang登陆
# browseable = no ##是否显示本共享目录
# admin users = yang ##让yang用户拥有超级用户权限
------------------
systemctl restart smb
* usermod -G yang student ##将student加到用户组yang中
* usermod -G "" student
测试(ip:172.25.254.12):
mount //172.25.254.112/westos /mnt -o password=yang,username=yang
5>多用户挂载
yum install cifs-utils -y
vim /root/passfile
----------
username=yang
password=yang
----------
mount //172.25.254.112/westos /mnt -o credentials=/root/passfile,multiuser,sec=ntlmssp
su - yang ##与passfile文件里用户同名
ls /mnt
cifscreds add 172.25.254.112
ls /mnt ##查看成功
su - kiosk ##与passfile文件里用户不同名
ls /mnt ##查看不成功
cifscreds add 172.25.254.112
ls /mnt ##查看不成功
6>自动挂载(autofs服务)
autofs与mount/unmount不同之处在于,他是一种服务程序。如果它检测到用户正试图访问一个尚未挂载的文件系统,
它就会自动检测该文件系统,如果存在,那么autofs会自动将其挂载。另一方面,如果它检测到某个已挂载的文件系统
在一段时间内没有被使用,那么autofs会自动将其卸载,因此,一旦运行了autofs之后,用户就不用手动完成文件系统
的挂载和卸载了。
=====
服务的安装与启动
=====
yum install autofs -y ##安装autofs服务
systemctl start autofs
======
编辑配置文件
======
vim /etc/auto.master ##主配置文件
----------------------------------
这个文件里的每一行对应一个挂载点
autofs服务的每个挂载点都有一个相应的配置文件,比如 /etc/auto.master 文件里有一行
/misc /etc/auto.misc 这一行表示 /misc 挂载点的配置文件是 /etc/auto.misc
这里/misc 代表的是你要挂载的真正目录的上层目录 比如你真正要挂载的位置是 /mnt/server
那么这里你就该写的挂载点是 /mnt 后面配置文件格式一般都统一写成 auto.xxx 后缀应与
挂载点名称相同 。 如我要挂载在 /mnt/server下 我就该在 /etc/auto.master 里加这一行:
/mnt /etc/auto.mnt
----------------------------------
vim /etc/auto.mnt ##编辑挂载点配置文件
--------------------
server -fstype=cifs,username=[],password=[] ://ip/dir
--------------------
server代表是/mnt/server
-fstype=cifs 代表文件系统格式是cifs
在Red Hat Enterprise Linux 5以下(不包括5),samba的共享的文件系统类型是smbfs,
在Red Hat Enterprise Linux 5及5以上则是cifs类型
username password 填写你自己samab账户username password
=========
更改挂载时间
=========
默认情况下挂载时间是300s,5min不使用就自动卸载,当然这个时间是可以改变的
在 /etc/sysconfig/autofs 下 有一行参数 :
TIMEOUT=300
将300改为你自己想要的值就ok了默认单位为秒
注意这个配置文件在不同版本的redhat下存在位置也不同:
7.0系统:
/etc/sysconfig/autofs
7.2系统:
/etc/autofs.conf
#################
#####NFS网络文件存储
#################
1>简介
网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件
系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制
目录的访问,也可用于允许用户在同一工作组中从不同客户端访问其文件。
NFS协议有多个版本:Linux支持版本4、版本3和版本2, 而大多数系统管理员
熟悉的是NFSv3。默认情况下,该协议并不安全,但是更新的版本(如NFSv4
)提供了对更安全的身份验证的支持,甚至可以通过kerberos进行加密
NFSv4还导出pseudo-root(所有导出的文件系统的root)。如果客户端挂载nfs-server:/ ,这将在NFS
服务器上的/下面相对于其位置挂载所有导出文件系统。这对于浏览从客户端的服务器导出的所有
文件系统有用。您仍可单独挂载文件系统。
默认情况下,NFS服务器将NFS客户端上的root视为用户nfsnobody。即,如果root尝试访问挂载的
导出中的文件,服务器会将其视作用户nfsnobody访问。在NFS导出被无磁盘客户端用作/和root需
要被视作root的情况中,这种安全措施存在隐患。若要禁用此保护,服务器需要将no_root_squash
添加到在/etc/exports中导出设置的选项列表:
/exports/root 172.25.254.12(rw,no_root_squash)
对于NFSv4,必须在服务器上打开端口2049/TCP(对于nfsd)。对于NFSv3和更早版本,必须为
rpcbind、rpc.mountd、lockd和rpc.rquotad打开更多端口,而在“随机”选择的端口上启动其中许
多服务这一事实又增加了复杂性。此外,NFSv2和NFSv3支持UDP传输,还要求打开相应的端口。
2>服务器配置(ip:172.25.254.112):
yum search nfs
yum install nfs-utils.x86_64 -y ##安装软件
systemctl start nfs ##开启服务
firewall-cmd --list-all ##查看火墙设置
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --list-all
mkdir /westos ##建立共享目录(也能分享系统本就存在的目录)
vim /etc/exports
-------------------
/westos 172.25.254.12(rw) ##分享目录为/westos 只允许172.25.254.12读写
-------------------
exportfs -rv ##-r 确保应用这些更改 -v 显示所有导出(共享)
showmount -e 172.25.254.112 ##显示指定NFS服务器共享目录列表
****************
NFS共享常用参数
****************
ro #只读访问
rw #读写访问
sync #所有数据在请求时写入共享
async #NFS在写入数据前可以相应请求
secure #NFS通过1024以下的安全TCP/IP端口发送
insecure #NFS通过1024以上的端口发送
wdelay #如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay #如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide #在NFS共享目录中不共享其子目录
no_hide #共享NFS目录的子目录
subtree_check #如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check #和上面相对,不检查父目录权限
all_squash #共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash #保留共享文件的UID和GID(默认)
root_squash #root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas #root用户具有根目录的完全管理访问权限
anonuid=xxx #指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx #指定NFS服务器/etc/passwd文件中匿名用户的GID
*************************
/etc/exports 文件编写
*************************
/nfsshare/read 172.25.0.0/24(ro,sync) ##允许一个网段的机器去访问此共享目录
/nfsshare/write 172.25.0.0/24(rw,sync) 127.0.0.1(rw,sync) ##允许这两个网段的机器去读写此共享目录
/nfsshare/read *(ro,sync) ##允许所有机器访问此目录
/nfsshare/read 172.25.254.12(ro,sync) ##允许这个ip访问此目录
3>客户端查看并挂载(ip:172.25.254.12)
showmount -e 172.25.254.112
mount 172.25.254.112:/westos /mnt
df
cd /mnt
mkdir aaa
ls
touch hello
4>永久挂载NFS文件系统:
将相应的行添加至/etc/fstab:
nfsserver:/nfsshare
/mnt/nfsshare nfs defaults 0 0
客户端NFS挂载选项
rw:挂载可读写的文件系统
ro:挂载只读文件系统
vers=4:尝试只使用指定的NFS版本进行挂载。如果服务器不支持该版本,则挂载请求失败
soft:如果NFS请求超时,三次尝试后返回错误。权衡数据完整性与提高客户端响应性。(默
认行为hard,将无限期地重试)。
5>保护NFS输出
在serverx和desktopx上运行脚本,加入kerberos认证域:
# lab nfskrb5 setup
安装kerberos服务所需的keytab:(以下操作都在server0上进行)
# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
激活NFS v4.2版本,可以输出selinux标签,编辑/etc/sysconfig/nfs修改如下选项:
RPCNFSDARGS="-V 4.2"
启动nfs-secure-server服务:
# systemctl start nfs-secure-server; systemctl enable nfs-secure-server
配置NFS输出:
# mkdir /securenfs
# echo '/securenfs desktop0(sec=krb5p,rw)' >> /etc/exports
# exportfs -r
安装kerberos服务所需keytab:(以下操作都在dekstop0进行)
# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab
启动nfs-secure服务:
# systemctl start nfs-secure; systemctl enable nfs-secure
配置客户端挂载:
# mkdir /mnt/secureshare
/etc/fstab
server0:/securenfs /mnt/secureshare nfs defaults,v4.2,sec=krb5p 0 0
# mount -a
6>自动挂载(autofs)
在客户端:
vim /etc/auto.master
----------------
/mnt /etc/auto.mnt
----------------
vim /etc/auto.mnt
------------------
yang -rw,vers=4 172.25.254.112:/westos
------------------
systemctl restart autofs
cd /mnt/yang
##############
####iscsi远程块存储
##############
服务端:
=======
服务的安装与启动
=======
yum install targetcli.noarch -y
systemctl start target
systemctl enable target
systemctl stop firewalld
=====
共享硬盘的建立
======
fdisk /dev/vdb ##先从本机分割一块空间
targetcli ##启动软件,建立共享
********
ls
/backstores/block create westos:storage1 /dev/vdb1
/iscsi create iqn.2017-03.com.westos:storage1
iscsi/iqn.2017-03.com.westos:storage1/tpg1/acls create iqn.2017-03.com.westos:key1
iscsi/iqn.2017-03.com.westos:storage1/tpg1/luns create /backstores/block/westos:storage1
iscsi/iqn.2017-03.com.westos:storage1/tpg1/portals create 172.25.254.212
exit
*********
依照上面命令建立好的文件系统:
=======================
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 1]
| | o- westos:storage1 ........... [/dev/vdb1 (100.0MiB) write-thru activated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2017-03.com.westos:storage1 ............................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1]
| | o- iqn.2017-03.com.westos:key1 ...................... [Mapped LUNs: 1]
| | o- mapped_lun0 ................... [lun0 block/westos:storage1 (rw)]
| o- luns ...................................................... [LUNs: 1]
| | o- lun0 .......................... [block/westos:storage1 (/dev/vdb1)]
| o- portals ................................................ [Portals: 1]
| o- 172.25.254.112:3260 .......................................... [OK]
o- loopback ..................................................... [Targets: 0]
==========================
vim /etc/iscsi/initiatorname.iscsi
--------
InitiatorName=iqn.2017-03.com.westos:key1
--------
测试:
客户端:
yum install iscsi-initiator-utils -y
vim /etc/iscsi/initiatorname.iscsi
---------------
InitiatorName=iqn.2017-03.com.westos:key1
---------------
systemctl restart iscsi
systemctl status iscsi
systemctl restart iscsid
systemctl status iscsid
history
iscsiadm -m discovery -t st -p 172.25.254.212 ##发现
iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.212 -l ##登陆
=====
客户端访问存储
=====
fdisk -l ##发现多了一块设备 /dev/sda
fdisk /dev/sda
partprobe
fdisk -l
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
df
umount /mnt
=====
中断使用iSCSI目标
=====
确保没有使用目标所提供的任何设备。
确保从/etc/fstab等位置中删除使用目标的所有永久挂载。
登出iSCSI目标,以暂时断开连接。
# iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.212 -u
删除iSCSI目标的本地记录,以永久断开连接。
# iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.212 -o delete
如果没有中断删除就重启电脑,iscsi会自动连接,如果服务器那边没有开启此服务,开机速度会非常慢,在开机后
#####samba文件共享
###############
能在linux与windows之间进行文件案共享
通用Internet文件系统(CIFS)也称为服务器信息块(SMB),是适用于Microsoft
Windows服务器和客户端的标准文件和打印机共享系统。
Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux
打印机作为CIFS/SMB打印机共享进行共享。
1>服务器安装及基本调试
服务器ip:172.25.254.112
hostnamectl set-hostname samba.example.com
yum install samba-client samba-common samba -y
systemctl stop firewalld.service
setsebool -P samba_enable_home_dirs on
systemctl start smb
smbpasswd -a student ##student用户必须是本机存在的用户、
##不能添加系统不存在的用户:
******************************
[root@localhost ~]# smbpasswd -a yang
New SMB password:
Retype new SMB password:
Failed to add entry foR user yang.
******************************
pdbedit -L ##列出smb用户
pdbedit -x student ##删除smb用户
pdbedit -L
smbpasswd -a student
测试(ip:172.25.254.12):
smbclient -L //172.25.254.112 -U student ##列出共享目录的信息
如果出现以下报错:
[root@desktop ~]# smbclient -L //172.25.254.112 -U student
Enter students password:
protocol negotiation failed: NT_STATUS_IO_TIMEOUT
解决方法:
服务器/etc/hosts 下加上服务器ip和名字
2>samba共享目录
cd /
mkdir westos
cd westos/
touch file{1..10}
ls
vim /etc/samba/smb.conf
---------
[westos1] ##共享目录的名字(自己定义)
comment = local directory westos ##共享说明
path = /westos ##文件路径
---------
systemctl restart smb
测试(ip:172.25.254.12):
smbclient -L //172.25.254.112 -U student
smbclient //172.25.254.112/westos -U student
登陆上去之后不能ls查看 因为selinux标签没有改变
**共享 用户自己建立的目录时需要修改该目录的selinux标签属性,此方式只针对修改目录
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -FvvR /westos/
smbclient //172.25.254.112/westos -U student
此时登陆上去之后ls能查看到目录下的文件
vim /etc/samba/smb.conf
----------
[linux]
comment = local directory westos
path = /linux
-----------
systemctl restart smb
smbclient -L //172.25.254.112 -U student
cd /
mkdir linux
touch linux/tong
**共享 系统建立的目录时需要修改的selinux sebool属性,此方式修改针对所有目录,
一旦开放,selinux标签不再保护目录访问
setsebool -P samba_export_all_rw on ##可以读写
setsebool -P samba_export_all_ro on ##只读
smbclient //172.25.254.112/linux -U student
用户要在共享目录下建立文件夹(拥有写权限)必须具备三点:
1>服务器分享的目录具有写权限
2>selinux sebool 开启写权限
3>samba配置文件里添加了允许写的参数(samba服务允许写的权力)
在测试端登陆后用ls查看:
smb: \> ls
. D 0 Mon Mar 20 16:42:45 2017
.. D 0 Mon Mar 20 15:59:53 2017
aa D 0 Mon Mar 20 16:21:39 2017
ss D 0 Mon Mar 20 16:41:20 2017
gile N 0 Mon Mar 20 16:42:09 2017
file N 0 Mon Mar 20 16:42:45 2017
10473900 blocks of size 1024. 7240984 blocks available
##服务器自己建立的文件或目录显示的是 N 通过samba服务在共享目录下建立的文件或目录显示的是 D
3>匿名访问
vim /etc/samba/smb.conf
------------
125 map to guest = bad user ##所有未认证的用户影射为guest(给guest一个身份)
321 [westos]
322 comment = local directory westos
323 path = /westos
324 guest ok = yes ##开启匿名
------------
systemctl restart smb
测试(ip:172.25.254.12):
smbclient //172.25.254.112/westos
mount //172.25.254.112/westos /mnt -o username=guest
umount /mnt
4>samba共享目录的管理参数
vim /etc/samba/smb.conf
-----------------
[westos]
comment = local directory westos
path = /westos
guest ok = yes
writeable = yes ##允许所有人可写
# write list = yang ##只允许用户yang可写
# write list = @yang ##只允许用户组yang可写
# valid users = yang ##只允许用户yang登陆
# valid users = +yang ##只允许用户组yang登陆
# browseable = no ##是否显示本共享目录
# admin users = yang ##让yang用户拥有超级用户权限
------------------
systemctl restart smb
* usermod -G yang student ##将student加到用户组yang中
* usermod -G "" student
测试(ip:172.25.254.12):
mount //172.25.254.112/westos /mnt -o password=yang,username=yang
5>多用户挂载
yum install cifs-utils -y
vim /root/passfile
----------
username=yang
password=yang
----------
mount //172.25.254.112/westos /mnt -o credentials=/root/passfile,multiuser,sec=ntlmssp
su - yang ##与passfile文件里用户同名
ls /mnt
cifscreds add 172.25.254.112
ls /mnt ##查看成功
su - kiosk ##与passfile文件里用户不同名
ls /mnt ##查看不成功
cifscreds add 172.25.254.112
ls /mnt ##查看不成功
6>自动挂载(autofs服务)
autofs与mount/unmount不同之处在于,他是一种服务程序。如果它检测到用户正试图访问一个尚未挂载的文件系统,
它就会自动检测该文件系统,如果存在,那么autofs会自动将其挂载。另一方面,如果它检测到某个已挂载的文件系统
在一段时间内没有被使用,那么autofs会自动将其卸载,因此,一旦运行了autofs之后,用户就不用手动完成文件系统
的挂载和卸载了。
=====
服务的安装与启动
=====
yum install autofs -y ##安装autofs服务
systemctl start autofs
======
编辑配置文件
======
vim /etc/auto.master ##主配置文件
----------------------------------
这个文件里的每一行对应一个挂载点
autofs服务的每个挂载点都有一个相应的配置文件,比如 /etc/auto.master 文件里有一行
/misc /etc/auto.misc 这一行表示 /misc 挂载点的配置文件是 /etc/auto.misc
这里/misc 代表的是你要挂载的真正目录的上层目录 比如你真正要挂载的位置是 /mnt/server
那么这里你就该写的挂载点是 /mnt 后面配置文件格式一般都统一写成 auto.xxx 后缀应与
挂载点名称相同 。 如我要挂载在 /mnt/server下 我就该在 /etc/auto.master 里加这一行:
/mnt /etc/auto.mnt
----------------------------------
vim /etc/auto.mnt ##编辑挂载点配置文件
--------------------
server -fstype=cifs,username=[],password=[] ://ip/dir
--------------------
server代表是/mnt/server
-fstype=cifs 代表文件系统格式是cifs
在Red Hat Enterprise Linux 5以下(不包括5),samba的共享的文件系统类型是smbfs,
在Red Hat Enterprise Linux 5及5以上则是cifs类型
username password 填写你自己samab账户username password
=========
更改挂载时间
=========
默认情况下挂载时间是300s,5min不使用就自动卸载,当然这个时间是可以改变的
在 /etc/sysconfig/autofs 下 有一行参数 :
TIMEOUT=300
将300改为你自己想要的值就ok了默认单位为秒
注意这个配置文件在不同版本的redhat下存在位置也不同:
7.0系统:
/etc/sysconfig/autofs
7.2系统:
/etc/autofs.conf
#################
#####NFS网络文件存储
#################
1>简介
网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件
系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制
目录的访问,也可用于允许用户在同一工作组中从不同客户端访问其文件。
NFS协议有多个版本:Linux支持版本4、版本3和版本2, 而大多数系统管理员
熟悉的是NFSv3。默认情况下,该协议并不安全,但是更新的版本(如NFSv4
)提供了对更安全的身份验证的支持,甚至可以通过kerberos进行加密
NFSv4还导出pseudo-root(所有导出的文件系统的root)。如果客户端挂载nfs-server:/ ,这将在NFS
服务器上的/下面相对于其位置挂载所有导出文件系统。这对于浏览从客户端的服务器导出的所有
文件系统有用。您仍可单独挂载文件系统。
默认情况下,NFS服务器将NFS客户端上的root视为用户nfsnobody。即,如果root尝试访问挂载的
导出中的文件,服务器会将其视作用户nfsnobody访问。在NFS导出被无磁盘客户端用作/和root需
要被视作root的情况中,这种安全措施存在隐患。若要禁用此保护,服务器需要将no_root_squash
添加到在/etc/exports中导出设置的选项列表:
/exports/root 172.25.254.12(rw,no_root_squash)
对于NFSv4,必须在服务器上打开端口2049/TCP(对于nfsd)。对于NFSv3和更早版本,必须为
rpcbind、rpc.mountd、lockd和rpc.rquotad打开更多端口,而在“随机”选择的端口上启动其中许
多服务这一事实又增加了复杂性。此外,NFSv2和NFSv3支持UDP传输,还要求打开相应的端口。
2>服务器配置(ip:172.25.254.112):
yum search nfs
yum install nfs-utils.x86_64 -y ##安装软件
systemctl start nfs ##开启服务
firewall-cmd --list-all ##查看火墙设置
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --list-all
mkdir /westos ##建立共享目录(也能分享系统本就存在的目录)
vim /etc/exports
-------------------
/westos 172.25.254.12(rw) ##分享目录为/westos 只允许172.25.254.12读写
-------------------
exportfs -rv ##-r 确保应用这些更改 -v 显示所有导出(共享)
showmount -e 172.25.254.112 ##显示指定NFS服务器共享目录列表
****************
NFS共享常用参数
****************
ro #只读访问
rw #读写访问
sync #所有数据在请求时写入共享
async #NFS在写入数据前可以相应请求
secure #NFS通过1024以下的安全TCP/IP端口发送
insecure #NFS通过1024以上的端口发送
wdelay #如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay #如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide #在NFS共享目录中不共享其子目录
no_hide #共享NFS目录的子目录
subtree_check #如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check #和上面相对,不检查父目录权限
all_squash #共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash #保留共享文件的UID和GID(默认)
root_squash #root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas #root用户具有根目录的完全管理访问权限
anonuid=xxx #指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx #指定NFS服务器/etc/passwd文件中匿名用户的GID
*************************
/etc/exports 文件编写
*************************
/nfsshare/read 172.25.0.0/24(ro,sync) ##允许一个网段的机器去访问此共享目录
/nfsshare/write 172.25.0.0/24(rw,sync) 127.0.0.1(rw,sync) ##允许这两个网段的机器去读写此共享目录
/nfsshare/read *(ro,sync) ##允许所有机器访问此目录
/nfsshare/read 172.25.254.12(ro,sync) ##允许这个ip访问此目录
3>客户端查看并挂载(ip:172.25.254.12)
showmount -e 172.25.254.112
mount 172.25.254.112:/westos /mnt
df
cd /mnt
mkdir aaa
ls
touch hello
4>永久挂载NFS文件系统:
将相应的行添加至/etc/fstab:
nfsserver:/nfsshare
/mnt/nfsshare nfs defaults 0 0
客户端NFS挂载选项
rw:挂载可读写的文件系统
ro:挂载只读文件系统
vers=4:尝试只使用指定的NFS版本进行挂载。如果服务器不支持该版本,则挂载请求失败
soft:如果NFS请求超时,三次尝试后返回错误。权衡数据完整性与提高客户端响应性。(默
认行为hard,将无限期地重试)。
5>保护NFS输出
在serverx和desktopx上运行脚本,加入kerberos认证域:
# lab nfskrb5 setup
安装kerberos服务所需的keytab:(以下操作都在server0上进行)
# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
激活NFS v4.2版本,可以输出selinux标签,编辑/etc/sysconfig/nfs修改如下选项:
RPCNFSDARGS="-V 4.2"
启动nfs-secure-server服务:
# systemctl start nfs-secure-server; systemctl enable nfs-secure-server
配置NFS输出:
# mkdir /securenfs
# echo '/securenfs desktop0(sec=krb5p,rw)' >> /etc/exports
# exportfs -r
安装kerberos服务所需keytab:(以下操作都在dekstop0进行)
# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab
启动nfs-secure服务:
# systemctl start nfs-secure; systemctl enable nfs-secure
配置客户端挂载:
# mkdir /mnt/secureshare
/etc/fstab
server0:/securenfs /mnt/secureshare nfs defaults,v4.2,sec=krb5p 0 0
# mount -a
6>自动挂载(autofs)
在客户端:
vim /etc/auto.master
----------------
/mnt /etc/auto.mnt
----------------
vim /etc/auto.mnt
------------------
yang -rw,vers=4 172.25.254.112:/westos
------------------
systemctl restart autofs
cd /mnt/yang
##############
####iscsi远程块存储
##############
服务端:
=======
服务的安装与启动
=======
yum install targetcli.noarch -y
systemctl start target
systemctl enable target
systemctl stop firewalld
=====
共享硬盘的建立
======
fdisk /dev/vdb ##先从本机分割一块空间
targetcli ##启动软件,建立共享
********
ls
/backstores/block create westos:storage1 /dev/vdb1
/iscsi create iqn.2017-03.com.westos:storage1
iscsi/iqn.2017-03.com.westos:storage1/tpg1/acls create iqn.2017-03.com.westos:key1
iscsi/iqn.2017-03.com.westos:storage1/tpg1/luns create /backstores/block/westos:storage1
iscsi/iqn.2017-03.com.westos:storage1/tpg1/portals create 172.25.254.212
exit
*********
依照上面命令建立好的文件系统:
=======================
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 1]
| | o- westos:storage1 ........... [/dev/vdb1 (100.0MiB) write-thru activated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2017-03.com.westos:storage1 ............................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1]
| | o- iqn.2017-03.com.westos:key1 ...................... [Mapped LUNs: 1]
| | o- mapped_lun0 ................... [lun0 block/westos:storage1 (rw)]
| o- luns ...................................................... [LUNs: 1]
| | o- lun0 .......................... [block/westos:storage1 (/dev/vdb1)]
| o- portals ................................................ [Portals: 1]
| o- 172.25.254.112:3260 .......................................... [OK]
o- loopback ..................................................... [Targets: 0]
==========================
vim /etc/iscsi/initiatorname.iscsi
--------
InitiatorName=iqn.2017-03.com.westos:key1
--------
测试:
客户端:
yum install iscsi-initiator-utils -y
vim /etc/iscsi/initiatorname.iscsi
---------------
InitiatorName=iqn.2017-03.com.westos:key1
---------------
systemctl restart iscsi
systemctl status iscsi
systemctl restart iscsid
systemctl status iscsid
history
iscsiadm -m discovery -t st -p 172.25.254.212 ##发现
iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.212 -l ##登陆
=====
客户端访问存储
=====
fdisk -l ##发现多了一块设备 /dev/sda
fdisk /dev/sda
partprobe
fdisk -l
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
df
umount /mnt
=====
中断使用iSCSI目标
=====
确保没有使用目标所提供的任何设备。
确保从/etc/fstab等位置中删除使用目标的所有永久挂载。
登出iSCSI目标,以暂时断开连接。
# iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.212 -u
删除iSCSI目标的本地记录,以永久断开连接。
# iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.212 -o delete
如果没有中断删除就重启电脑,iscsi会自动连接,如果服务器那边没有开启此服务,开机速度会非常慢,在开机后
清除 /var/lib/iscsi/nodes/ /var/lib/iscsi/send_targets/ 下的所有内容就ok了