网络文件系统(samba、nfs、iscsi)
一、samba服務簡介
1、smb協議
smb(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同操作系統的計算機之間提供文件及打印機等資源的共享服務。SMB 協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。
2、ftp 服務 與 samba 服務對比
(1)ftp 的優缺點:
優點:文件傳輸、應用層協議、可跨平臺
缺點:只能實現文件傳輸,無法實現文件系統掛載;無法直接修改服務器端文件
(2)Samba 的特性:
使用 smb/cifs 協議、可跨平臺、可實現文件系統掛載、可實現服務器端修改文件
作用:
windows系統共享文件時用到的協議smb
smb是由miscrosoft+sun
Linux 系統用到的是cifs
CIFS 是一個新提出的協議,它使程序可以訪問遠程Internet計算機上的文件并要求此計算機提供服務。CIFS 使用客戶/服務器模式。客戶程序請求遠在服務器上的服務器程序為它提供服務。服務器獲得請求并返回響應。CIFS是公共的或開放的SMB協議版本,并由Microsoft使用。SMB協議在局域網上用于服務器文件訪問和打印的協議。像SMB協議一樣,CIFS在高層運行,而不像TCP/IP協議那樣運行在底層。CIFS可以看做是應用程序協議如文本傳輸協議和超文本傳輸協議的一個實現 ??
二、samba基本信息
| 主配置目錄 | /etc/samba |
| 主配置文件 | /etc/samba/samba.conf |
| 安全上下文 | samba_share_t |
| 端口 | 139??? 445?? |
| 安裝包 | samba? samba-common |
?
?
三、samba的安裝與啟用
samba的安裝: dnf install samba samba-common samba-client -ysamba服務啟動: systemctl enable --now smbsamba服務啟用 firewall-cmd --permanent --add-service=samba firewall-cmd --reload測試:
smbclient? -L //172.25.254.101 ?? ##當要輸入root密碼時請直接回車
三、samba用戶的建立
1.samba用戶必須是本地存在的用戶
2.samba用戶的建立
四、samba用戶訪問加目錄
當selinux開啟時: setsebool -P samba_enable_home_dirs on (1)windows下: \\172.25.254.20 ##訪問 net use ##查看訪問記錄 net use * /del ##刪除訪問記錄(2)在linux下: smbclient //172.25.254.101/westos -U westos驗證:
五、samba服務共享目錄
mkdir /westosdir touch /westosdir/westosfile{1..5} semanage fcontext -a -t samba_share_t '/westosdir(/.*)?' restorecon -RvvF /westosdir/ vim /etc/samba/smb.conf systemctl restart smb[westos_share]?? ??? ??? ?##共享名稱
?? ?comment = westos dir?? ?##共享說明
?? ?path = /westosdir?? ?##共享路徑
沒有設置安全上下文的情況:
設置安全上下文之后情況:
?如果共享目錄為系統目錄:例如/mnt
[westos_share]
comment = westos dir
path = /mnt
因為系統文件不能隨便給權限或者設置其安全上下文,所以需要開啟下面這個服務samba_export_all_ro
?驗證:
六、samba的訪問控制
hosts allow?? ?172.25.254.1 172.25.254.?? ??? ?##當寫到單獨共享時之對此共享生效
hosts deny?? ??? ??? ??? ??? ?##當寫到【GLOBAL】時對samba整體生效
測試:
?
七、samba的常用配置參數
| writable = yes? | 可寫 |
| write list = lee | 指定用戶可寫 |
| write list = +westos | 指定組可寫 |
| write list = @westos | 指定組可寫 |
| valid users = lee | 指定訪問用戶 |
| valid users = +lee|@lee | 指定訪問組 |
| browseable = yes|no | 是否隱藏共享 |
?測試:(此時的測試可以將這個共享目錄掛載之后進行寫入)
vim /etc/samba/smb.conf writable = yes ##可寫 systemctl restart smb.server chmod 777 /westosdir 為了方便實驗,所以給這個目錄777權限 mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt?
vim /etc/samba/smb.conf write list = lee 指定lee 可寫 systemctl restart smb.service?
usermod -G westos lee vim /etc/samba/smb.conf writ list = +westos westos組可寫 systemctl restart smb.service mount -o username=lee,password=westos //172.25.254.101/westos_share /mnt touch file1 vim /etc/samba/smb.conf valid users = lee ##指定訪問用戶 systemctl restart smb.service mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt mount -o username=lee,password=westos //172.25.254.101/westos_share /mn?
?
?指定訪問組和上面一個道理,這里不進行測試
vim /etc/samba/smb.conf browseable = yes|no ##是否隱藏共享systemctl restart smb.service smbclient -L //172.25.254.101| map to guest = bad user | 寫到全局設定中(118行) |
| guest ok = yes?? | 允許匿名用戶訪問 |
| admin users = lee | 指定此共享的超級用戶身份呢 |
?
八、samba的多用戶掛載
在客戶端如果用普通的掛載方式
沒有用過用戶驗證的人也可以訪問samba服務
?
root@client ~]# su - westos
[westos@client ~]$ cd /mnt
[westos@client mnt]$ ls????????????? ##客戶端主機的westos用戶沒有通過認證
ls: cannot open directory '.': Permission denied
[westos@client mnt]$ ls
ls: cannot open directory '.': Permission denied
[westos@client mnt]$ cifscreds add? -u westos??? 172.25.254.101
Password:
[westos@client mnt]$ ls??? ##通過認證可以顯示
file1? file2? file3
[westos@test /]$ cifscreds add? -u lee?? 172.25.254.101
Key search failed: Key has expired?? ?##當遇到此報錯信息
[westos@test /]$ cifscreds add? -u lee?? -d 172.25.254.101
Password:
[westos@test ~]$ cifscreds clearall?? ?##執行以上兩條命令解決報錯
autofs+samba
autofs:在客戶端實現自動掛載卸載的軟件 下載:dnf install autofs.x86_64 配置方式: vim /etc/auto.master 最終掛載點的上層目錄 自動以子策略文件 /mnt /etc/auto.sambavim 自動以子策略文件(/etc/auto.samba) 最終掛載點 掛載參數 掛載資源 samba -fstype=cifs,username=westos,password=westos ://172.25.254.101/westos_sharesystemctl restart autofs測試:
cd /mnt/samba
df
cd /root
等待資源閑置超時?? ?##默認300秒 vim /etc/autofs.conf ---->Timeout=3
df
掛載資源自動卸載
?
NFS
Net File System
NFS是基于UDP/IP協議的應用,其實現主要是采用遠程過程調用RPC機制,RPC提供了一組與機器、操作系統以及低層傳送協議無關的存取遠程文件的操作。RPC采用了XDR的支持。XDR是一種與機器無關的數據描述編碼的協議,他以獨立與任意機器體系結構的格式對網上傳送的數據進行編碼和解碼,支持在異構系統之間數據的傳送。
工作原理:
NFS的工作原理是使用客戶端/服務器架構,由一個客戶端程序和服務器程序組成。服務器程序向其他計算機提供對文件系統的訪問,其過程稱為輸出。NFS客戶端程序對共享文件系統進行訪問時,把它們從NFS服務器中“輸送”出來。文件通常以塊為單位進行傳輸。其大小是8KB(雖然它可能會將操作分成更小尺寸的分片)。NFS傳輸協議用于服務器和客戶機之間文件訪問和共享的通信,從而使客戶機遠程地訪問保存在存儲設備上的數據。
特點:
(1)提供透明文件訪問以及文件傳輸;
(2)容易擴充新的資源或軟件,不需要改變現有的工作環境;
(3) 高性能,可靈活配置。
| nfs-utils | ##安裝包 |
| nfs-server | ##服務腳本 |
| /etc/exports | ##共享配置文件 |
nfs的啟用
systemctl start nfs-server firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=nfs firewall-cmd --reload測試:
[root@server ~]# showmount -e 172.25.254.101
Export list for 172.25.254.101:
nfs配置
vim /etc/exports ##此文件更改后生效exportfs -rv共享目錄 共享給誰(共享參數)/westosdir *(ro)?測試:
nfs配置參數
| anonuid=1000,anongid=1000 | 指定用戶身份 |
| sync | 更改生成后同步數據到服務器 |
| async | 時時同步數據到服務器 |
| rw | 讀寫 |
| ro | 只讀 |
| no_root_squash??? | root用戶掛載不轉換身份 |
?測試:
mount 172.25.254.101:/westosdir? /mnt/
?
nfs+autofs
參看autofs.samba章節內容
vim /etc/auto.master /mnt auto.nfs vim /etc/auto.nfs nfs 172.25.254.101:/westosdir systemctl restart autofs.service cd /mnt/nfs df測試:
iscsi
iSCSI(Internet Small Computer System Interface,發音為/?а?sk?zi/),Internet小型計算機系統接口,又稱為IP-SAN,是一種基于因特網及SCSI-3協議下的存儲技術,由IETF提出,并于2003年2月11日成為正式的標準。與傳統的SCSI技術比較起來,iSCSI技術有以下三個革命性的變化:
把原來只用于本機的SCSI協議透過TCP/IP網絡發送,使連接距離可作無限的地域延伸;
連接的服務器數量無限(原來的SCSI-3的上限是15);
由于是服務器架構,因此也可以實現在線擴容以至動態部署.
功能:
iSCSI利用了TCP/IP的port 860 和 3260 作為溝通的渠道。透過兩部計算機之間利用iSCSI的協議來交換SCSI命令,讓計算機可以透過高速的局域網集線來把SAN模擬成為本地的儲存裝置。
iSCSI使用 TCP/IP 協議(一般使用TCP端口860和3260)。 本質上,iSCSI 讓兩個主機通過 IP 網絡相互協商然后交換SCSI命令。這樣一來,iSCSI 就是用廣域網仿真了一個常用的高性能本地存儲總線,從而創建了一個存儲局域網(SAN)。不像某些 SAN 協議,iSCSI 不需要專用的電纜;它可以在已有的交換和 IP 基礎架構上運行。然而,如果不使用專用的網絡或者子網( LAN 或者 VLAN ),iSCSI SAN 的部署性能可能會嚴重下降。于是,iSCSI 常常被認為是光纖通道(Fiber Channel)的一個低成本替代方法,而光纖通道是需要專用的基礎架構的。但是,基于以太網的光纖通道(FCoE)則不需要專用的基礎架構。
?
?
iscsi_client #客戶端dnf install iscsi-initiator-utils.x86_64 -y vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2020-08.com.westos:westoskey1 <---- key checksystemctl restart iscsidiscsiadm -m discovery -t st -p 172.25.254.101 iscsiadm -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -l ---> /dev/sdafdisk /dev/sda ---> /dev/sda1 mkfs.xfs /dev/sda1 mount /dev/sda1 /mntiscsiadm -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -u刪除/dev/sda iscsiadm -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -o delete 刪除樹文件總結
以上是生活随笔為你收集整理的网络文件系统(samba、nfs、iscsi)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业dns 服务器的搭建
- 下一篇: moosefs分布式文件系统