网络文件系统
实验环境
(1)配置好网络,我这里第一台服务主机名为nodea,网络IP为192.168.2.100
(2)配置好第二台主机网络,我这里第二台测试主机名为nodeb,网络IP为192.168.2.150
(3) 搭建好两台主机的软件仓库
(4)为第一台主机nodea添加一块10G的硬盘
1. samba服务简介
作用:
smb = Server Message Block Sum
cifs = Common Internet File System Miscrosoft
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun
Linux系统用到的协议cifs
2.samba基本信息
服务启动脚本: smb.service
主配置目录: /etc/samba
主配置文件: /etc/smb.conf
安全上下文: samba_share_t
端口: 139 445
安装包: samba samba-common
因为配置文件/etc/smb.conf中内容比较少,所以要用/etc/samba目录中的smb.conf.example来替换。
cp smb.conf.example smb.conf
3.samba的安装与启用
samba的安装:
服务主机中:dnf install samba samba-common -y
测试主机中:dnf install samba-client -y
samba服务启动:
systemctl enable --now smb
samba服务启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
测试:
smbclient -L //192.168.2,100
##当要输入root密码时请直接回车
服务主机:
测试主机:
4.samba用户的建立
(1) samba用户必须是被地存在的用户
(2) samba用户的建立
smbpasswd -a lee ##添加用户
pdbedit -L ##查看用户列表
pdbedit -x lee ##删除用户
5. samba用户访问家目录
当selinux开启时:
setsebool -P samba_enable_home_dirs on
windows下
\192.168.2.100 ##访问
net use ##查看访问记录
net use * /del ##删除访问记录
在linux下:
smbclient //192.168.2.100/westos -U westos
6. samba服务共享目录
mkdir /westosdir
touch /westosdir/westosfile{1..5}
vim /etc/samba/smb.conf
[westosdir] ##共享名称
comment = westosdir ##共享说明
path = /westosdir ##共享路径
systemctl restart smb.service
测试:
smbclient //192.168.2.100 /westosdir -U westos
在nodeb主机中进行测试
7. samba的访问控制
hosts allow ##白名单,当写到单独共享时之对此共享生效
hosts deny ##黑名单,当写到【GLOBAL】时对samba整体生效
hosts deny ##黑名单
当hosts deny黑名单写到共享目录中时,只针对共享目录生效
测试:
hosts allow ##白名单
测试:
8. samba的常用配置参数
(1)writable = yes ##可写
(2)write list = westos ##指定用户可写
(3)write list = +westos ##指定组可写
write list = @westos
(4)valid users = lee ##指定访问用户
(5)valid users = +lee|@lee ##指定访问组
(6)browseable = yes|no ##是否隐藏共享
(7)map to guest = bad user ##写到全局设定中
(8)guest ok = yes ##允许匿名用户访问
(9)admin users = lee ##指定此共享的超级用户身份
测试共享目录的挂载
(1)发现挂载成功后,不能建立文件,只有只读的权利
所以我们要在服务主机中给到它可写权力
然后在测试主机中重新建立文件测试
(2)指定用户可写
测试主机中测试
(3)指定用户组可写
测试主机中进行测试
(4)指定访问用户
测试主机中进行测试
(5)指定访问组
测试主机中进行测试
(6)是否隐藏共享
测试主机中进行测试
(7)写到全局设定中
(8) 允许匿名用户访问
(9)指定此共享的超级用户身份
测试主机中进行测试
9. samba的多用户挂载
在客户端如果用普通的挂载方式,没有用过用户验证的人也可以访问samba服务,这显然不合理
所以我们要设定,只有通过用户验证的用户才能访问。
dnf install cifs-utils -y
vim /root/smbpass
username=westos
password=0000
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //192.168.2.100/westosdir /mnt
#credentials=/root/smbpass ##指定认证文件
#sec=ntlmssp ##指定认证类型
#multiuser ##支持多用户
su - westos
[westos@test /]$ ls /mnt ##客户端主机的wetos用户没有通过认证
ls: cannot access '/mnt': Permission denied
[westos@test ~]$ cifscreds add -u lee 192.168.2.100
Password:
[westos@test ~]$ ls /mnt/ ##通过认证可以显示
file file1111 file2 file22222
[westos@test /]$ cifscreds add -u lee 192.168.2.100
Key search failed: Key has expired ##当遇到此报错信息
[westos@test /]$ cifscreds add -u lee -d 192.168.2.100
Password:
[westos@test ~]$ cifscreds clearall ##执行以上两条命令解决报错
NFS方式共享
相对于samba的共享方式来说,NFS更加简单
nfs基本信息
nfs-utils ##安装包
nfs-server ##服务脚本
/etc/exports ##共享配置文件
nfs的启用
dnf install nfs-utils
systemctl enable --now nfs-server
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
vim /etc/exports ##/westos *(ro)以ro方式共享给所有人
exportfs -rv ##刷新
测试:
[root@dns_node1 ~]# showmount -e 192.168.2.100
Export list for 192.168.2.100:
nfs配置
vim /etc/exports ##此文件更改后exportfs -rv刷新,文件生效
共享目录 共享给谁(共享参数)
/westosdir *(ro)
测试:
mount 192.168.2.100:/westosdir /mnt/
服务主机安装启用,设置防火墙
测试主机测试机
nfs配置参数
anonuid=1000,anongid=1000 ##指定用户身份
sync ##更改生成后同步数据到服务器
async ##时时同步数据到服务器
rw ##读写
ro ##只读
no_root_squash ##root用户挂载不转换身份
(1)指定用户身份
测试机测试
(2)root用户挂载不转换身份
测试机测试
nfs+autofs实现挂载优化
nfs方式,自动挂载或者卸载
参看autofs章节内容
vim /etc/auto.mater
/nfs /etc/auto.nfs
vim /etc/auto.nfs
westos -rw,vers=3 192.168.2.100:/westosdir
systemctl restart autofs.service
测试:
cd /nfs/westos
df
cd /root/
df
如果想快点看到实验效果,可以编辑 /etc/autofs.conf 这个文件,将其中的timeout等待时间改为5秒,默认是300秒,更改完成后 systemctl restart autofs.service 重启,重复测试步骤,效果极佳
autofs实现samba自动挂载
dnf install autofs -y
autofs:
在客户端实现自动挂载卸载的软件
配置方式:
vim /etc/auto.master
最终挂载点的上层目录 自动以子策略文件
/samba /etc/auto.samba
vim 自动以子策略文件(/etc/auto.samba)
最终挂载点 挂载参数 挂载资源
westos -fstype=cifs,username=westos,password=lee ://192.168.2.100/westosdir
systemctl enable autofs
测试:
cd /samba/westos
df
cd /root
等待资源闲置超时 ##默认300秒 vim /etc/autofs.conf ---->Timeout=5
systemctl restart autofs.service
df
挂载资源自动卸载
iscsi网络存储设备的构建
直接把系统硬盘设备共享出去
1.
fdisk /dev/vdb -------> /dev/vdb1
2.
dnf install targetcli -y
3. 服务主机
targetcli
/> /backstores/block create storagel /dev/sdb1
/> /iscsi create iqn.2022-05.com.westos:storagel
/>/iscsi/iqn.2022-05.com.westos:storagel/tpg1/luns create /backstores/block/storagel
/> /iscsi/iqn.2022-05.com.westos:storagel/tpg1/acls create iqn.202205.com.westos:westoskey1
/> exit
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
4. 测试主机
dnf install iscsi-initiator-utils.x86_64 -y
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-08.com.westos:westoskey1 <---- key check
systemctl restart iscsid
iscsiadm -m discory -t st -p 192.168.2.100
iscsiadm -m node -T iqn.2020-08.com.westos:strage1 -p 192.168.2.100 -l ---> /dev/sda
fdisk /dev/sda ---> /dev/sda1
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
服务主机:
(1)把之前添加的新硬盘,分出一个2G的分区
(2)下载targetcli
(3) 设定共享,设定火墙端口
设置完成后可以查看
测试主机:
(1)下载iscsi
(2)编辑认证文件
(3) 重启设备
(4)认证
(5)查看是否共享成功
(6)用共享的硬盘再分区,大小为2G。分完之后格式化
(7)挂载新分出的硬盘,共享设备成功
网络存储设备的永久挂载
blkid ##查看存储设备id
/dev/sdb1: UUID="97044a51-5bf1-424b-8752-a06405fb4d3d" TYPE="xfs" PARTUUID="056a99dd-01"
vim /etc/fstab ##编辑永久挂载文件
UUID=97044a51-5bf1-424b-8752-a06405fb4d3d /mnt xfs defaults,_netdev 0 0
##将网络存储设备的id添加进去,添加挂载点,在defaults后加上,_netdev 设置完成,重启后依然挂载
网络设备的停用及删除
测试主机:
vim /etc/fstab ##删除文件中设置的永久挂载
tree /var/lib/iscsi/ ##树形结构查看网络存储设备的名称
iscsiadm -m node -T iqn.2022-05.com.westos:storagel -p 192.168.2.100 -u ##登出设备
iscsiadm -m node -T iqn.2022-05.com.westos:storagel -p 192.168.2.100 -o delete ##永久从客户端删除
服务主机:
targetcli
/>ls
/>clearconfig confirm=True
/>ls
测试主机:
服务主机: