作用:方便备份恢复数据,实现数据共享
建立免密通道将数据scp过去,然后再用卷挂载到容器内
搭建nfs服务器+客户端挂载
过程如下
一.安装软件包
yum install -y nfs-utils
二、启动服务
[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs-server ~]#
三、查看rpcbind的端口和进程
[root@nfs-server ~]# ps aux|grep nfs
root 1919 0.0 0.0 0 0 ? S< 17:24 0:00 [nfsd4_callbacks]
root 1925 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1926 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1927 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1928 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1929 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1930 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1931 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1932 0.0 0.0 0 0 ? S 17:24 0:00 [nfsd]
root 1964 0.0 0.0 112824 972 pts/0 S+ 17:25 0:00 grep --color=auto nfs
[root@nfs-server ~]# ss -anplut|grep rpcbind
udp UNCONN 0 0 *:797 *:* users:(("rpcbind",pid=1894,fd=7))
udp UNCONN 0 0 *:111 *:* users:(("rpcbind",pid=1894,fd=6))
udp UNCONN 0 0 [::]:797 [::]:* users:(("rpcbind",pid=1894,fd=10))
udp UNCONN 0 0 [::]:111 [::]:* users:(("rpcbind",pid=1894,fd=9))
tcp LISTEN 0 128 *:111 *:* users:(("rpcbind",pid=1894,fd=8))
tcp LISTEN 0 128 [::]:111 [::]:* users:(("rpcbind",pid=1894,fd=11))
[root@nfs-server ~]#
nfsd进程将监听端口的活外包给了rpcbind进程
四、创建nfs共享目录
[root@nfs-server ~]# mkdir /web
[root@nfs-server ~]# cd /web
[root@nfs-server web]# echo "welcome to sanchuang changsha nongda" >index.html
[root@nfs-server web]# ls
index.html
[root@nfs-server web]#
5、编辑/etc/exports文件 **修改配置文件需要重新加载配置文件( exportfs -arv)
/web 192.168.1.0/24(rw,sync,all_squash)
/web 共享的目录的路径
192.168.1.0/24 允许能访问的机器的网段
(rw,sync,all_squash) 拥有的权限 rw 可以读写 sync 在host上修改了数据,里面同步到nfs服务器
all_squash 任何机器上的任何用户连接过来都看成一个普通的用户nobody对待
[root@nfs-server web]# exportfs -av 让共享目录生效
exporting 192.168.1.0/24:/web
[root@nfs-server web]#
6.设置共享目录的权限
[root@localhost web]# cat /etc/passwd|grep nfs
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@localhost web]#
[root@nfs-server web]# chown nobody:nobody /web
[root@nfs-server web]# ll -d /web
drwxr-xr-x 2 nobody nobody 24 8月 26 17:28 /web
[root@nfs-server web]#
共享权限
linux系统里的权限
[root@nfs-server web]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@nfs-server web]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@nfs-server web]# getenforce
Disabled
[root@nfs-server web]#
===========
所有的客户端
1.安装软件
[root@sc-docker _data]# yum install nfs-utils -y
[root@sc-docker2 /]#yum install nfs-utils -y
2.新建挂载目录,然后挂载
[root@sc-docker ~]# mkdir /nfs-web
[root@sc-docker2 ~]# mkdir /nfs-web
[root@sc-docker2 ~]# mount 192.168.1.133:/web /nfs-web/
[root@sc-docker ~]# df -Th|grep nfs
192.168.1.133:/web nfs4 17G 1.5G 16G 9% /nfs-web
[root@sc-docker ~]#
[root@sc-docker ~]# cd /nfs-web/
[root@sc-docker nfs-web]# ls
index.html
[root@sc-docker nfs-web]# cat index.html
welcome to sanchuang changsha nongda
[root@sc-docker nfs-web]#
[root@sc-docker2 ~]# cd /nfs-web/
[root@sc-docker2 nfs-web]# ls
index.html
[root@sc-docker2 nfs-web]# cat index.html
welcome to sanchuang changsha nongda
[root@sc-docker2 nfs-web]#
[root@sc-docker2 nfs-web]# mount|grep nfs
192.168.1.133:/web on /nfs-web type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.124,local_lock=none,addr=192.168.1.133)
[root@sc-docker2 nfs-web]#
nfs客户端创建卷+容器挂载
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=,nolock,soft,rw,sync \
--opt device=:<共享目录全路径> \
<卷名>
创建一个卷底层挂载到nfs服务器192.168.1.133上的共享目录/web里
[root@sc-docker nfs-web]# docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.133,nolock,soft,rw,sync --opt device=:/web nfs-web-6
nfs-web-6
[root@sc-docker nfs-web]# docker volume ls
DRIVER VOLUME NAME
local 2f1f1ac5ccdde7a9d80e277a974eeb3c2b6ff98b7126349f52caaef0042bbf9f
local 5103a4c07fe6745fba25c88320cc42a385c1e44b9cd461ed6b7be894e77bf357
local b9eeeb4fc5d95a184919ad9dbdb6a329771950a85a98e3729ad911107eb681d4
local nfs-web
local nfs-web-2
local nfs-web-6
local nginx-web
[root@sc-docker nfs-web]# docker volume inspect nfs-web-6
[
{
"CreatedAt": "2022-08-26T18:24:33+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nfs-web-6/_data",
"Name": "nfs-web-6",
"Options": {
"device": ":/web",
"o": "addr=192.168.1.133,nolock,soft,rw,sync",
"type": "nfs"
},
"Scope": "local"
}
]
[root@sc-docker nfs-web]#
创建一个容器使用nfs-web-6卷
docker run -d -p 8818:80 -v nfs-web-6:/usr/share/nginx/html --name siyx-nginx-8 nginx
参考:https://www.ibm.com/cn-zh/topics/storage-area-network
NAS(Network Attached Storage)网络附加存储 网络存储基于标准网络协议实现数据传输,为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据备份。
NAS是一台可以放在家中或办公室的个人储存设备
使用传统的网络,实现文件存储和共享
将存储设备直接连在网上,提供数据和文件服务。
如果在企业中办公使用的话,NAS网络存储是特别方便的,在局域网内装一台NAS存储设备,同一局域网内的用户都可以连接上,连接上以后如下图会增加一个类似本地盘的大的阵列盘,可以在里面放公共的文件,这样大家之间不需要拷贝,直接可以在存储里面的查找修改,极大程度的提高了工作效率。
NAS提供了很多的安全机制,为每个用户设置权限,可以分级、分部门等。还有很多安全机制可以保护数据安全。
特点:
1.需要专业的存储设备 --》NAS--->NFS
2.使用传统的tcp/ip网络
3.其他的电脑/手机/pad等设备都可以使用
存储区域网络 (Storage Area Network, SAN) 是企业最常用的存储网络架构,要求高吞吐量和低延迟的业务关键型业务往往采用这类架构运行。如今,采用全闪存存储的 SAN 部署数量增速迅猛。与旋转磁盘相比,全闪存存储可提供更出色的性能、稳定一致的低延迟以及更低的总成本。SAN 将数据存储在集中式共享存储中,使企业能够运用一致的方法和工具来实施安全防护、数据保护和灾难恢复。
SAN (Storage Area Network的简称)直译过来就是存储区域网络,它采用光纤通道 (Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。 SAN网络存储是一种高速网络或子网络,SAN存储系统提供在计算机与存储系统之间的数据传输。
计算机内存和本地存储资源可能无法为企业应用程序提供足够的存储、存储保护、多用户访问或速度和性能。 因此,除了网络附加存储 (NAS) 之外,大多数组织还采用某种形式的 SAN,以提高效率,更好地进行数据管理。
传统上,可以连接到服务器的储存设备数量有限,从而限制了网络的存储容量。 但是 SAN 引入了网络灵活性,让一台服务器或许多跨多个数据中心的异构服务器能够共享一个公共存储实用程序。 SAN 消除了网络文件服务器和存储之间的传统专用连接,以及服务器有效拥有和管理存储设备的概念,这让带宽瓶颈不复存在。 SAN 消除了单点故障,以提高存储可靠性和可用性。
SAN 也是灾难恢复 (DR) 的最佳选择,因为网络可能包含许多存储设备,其中有磁盘、磁带和光存储。 存储实用程序的位置也可能离它所使用的服务器很远。
优点:
与直连存储 (DAS) 不同,基于网络的存储允许多台计算机通过网络访问它,从而更好地进行数据共享和协作。 它的异地存储能力也使其更适合备份和数据保护。 网络附加存储 (NAS) 和存储区域网络 (SAN) 是两种典型的基于网络的存储设置。
NAS 通常是由冗余存储容器或独立磁盘冗余阵列 (RAID) 组成的单个设备。 SAN 存储可以是多个设备的网络,包括 SSD 和闪存存储、混合存储、混合云存储、备份软件和设备以及云存储。 选择适合于您用例的存储很重要。 以下是 NAS 和 SAN 的不同之处:
SAN
NAS
云存储是一种网上在线存储(英语:Cloud storage)的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上。托管(hosting)公司运营大型的数据中心,需要数据存储托管的人,则通过向其购买或租赁存储空间的方式,来满足数据存储的需求。数据中心营运商根据客户的需求,在后端准备存储虚拟化的资源,并将其以存储资源池(storage pool)的方式提供,客户便可自行使用此存储资源池来存放文件或对象。实际上,这些资源可能被分布在众多的服务器主机上。