容器和宿主机之间的存储问题

news2025/1/16 21:13:07

简介

作用:方便备份恢复数据,实现数据共享

一、单台机器中

用数据卷挂载

二、多台机器中

ssh  

建立免密通道将数据scp过去,然后再用卷挂载到容器内

nfs  网络文件系统

搭建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=<NFS服务器地址>,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  网络附加存储

NAS(Network Attached Storage)网络附加存储  网络存储基于标准网络协议实现数据传输,为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据备份。

 NAS是一台可以放在家中或办公室的个人储存设备

使用传统的网络,实现文件存储和共享 

将存储设备直接连在网上,提供数据和文件服务。

如果在企业中办公使用的话,NAS网络存储是特别方便的,在局域网内装一台NAS存储设备,同一局域网内的用户都可以连接上,连接上以后如下图会增加一个类似本地盘的大的阵列盘,可以在里面放公共的文件,这样大家之间不需要拷贝,直接可以在存储里面的查找修改,极大程度的提高了工作效率。

NAS提供了很多的安全机制,为每个用户设置权限,可以分级、分部门等。还有很多安全机制可以保护数据安全。 

特点:

1.需要专业的存储设备 --》NAS--->NFS
2.使用传统的tcp/ip网络
3.其他的电脑/手机/pad等设备都可以使用 

SAN  存储区域网络

存储区域网络 (Storage Area Network, SAN) 是企业最常用的存储网络架构,要求高吞吐量和低延迟的业务关键型业务往往采用这类架构运行。如今,采用全闪存存储的 SAN 部署数量增速迅猛。与旋转磁盘相比,全闪存存储可提供更出色的性能、稳定一致的低延迟以及更低的总成本。SAN 将数据存储在集中式共享存储中,使企业能够运用一致的方法和工具来实施安全防护、数据保护和灾难恢复。 

 

SAN (Storage Area Network的简称)直译过来就是存储区域网络,它采用光纤通道 (Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。 SAN网络存储是一种高速网络或子网络,SAN存储系统提供在计算机与存储系统之间的数据传输。

计算机内存和本地存储资源可能无法为企业应用程序提供足够的存储、存储保护、多用户访问或速度和性能。 因此,除了网络附加存储 (NAS) 之外,大多数组织还采用某种形式的 SAN,以提高效率,更好地进行数据管理。

传统上,可以连接到服务器的储存设备数量有限,从而限制了网络的存储容量。 但是 SAN 引入了网络灵活性,让一台服务器或许多跨多个数据中心的异构服务器能够共享一个公共存储实用程序。 SAN 消除了网络文件服务器和存储之间的传统专用连接,以及服务器有效拥有和管理存储设备的概念,这让带宽瓶颈不复存在。 SAN 消除了单点故障,以提高存储可靠性和可用性。

SAN 也是灾难恢复 (DR) 的最佳选择,因为网络可能包含许多存储设备,其中有磁盘、磁带和光存储。 存储实用程序的位置也可能离它所使用的服务器很远。

优点:

  1. 提高应用程序可用性    存储独立于应用程序而存在,可通过多种路径访问以提高可靠性、可用性和可服务性。
  2. 更好的应用程序性能   SAN 将存储处理从服务器卸载并转移到单独的网络上。
  3. 中央和综合   SAN 让更简单的管理、可扩展性、灵活性和高可用性成为可能。
  4. 远程站点数据传输和存储   SAN 通过远程复制保护数据免受灾难和恶意攻击。
  5. 简单的集中管理    SAN 通过创建存储介质的单个映像来简化管理。

NAS 和 SAN

与直连存储 (DAS) 不同,基于网络的存储允许多台计算机通过网络访问它,从而更好地进行数据共享和协作。 它的异地存储能力也使其更适合备份和数据保护。 网络附加存储 (NAS) 和存储区域网络 (SAN) 是两种典型的基于网络的存储设置。

NAS 通常是由冗余存储容器或独立磁盘冗余阵列 (RAID) 组成的单个设备。 SAN 存储可以是多个设备的网络,包括 SSD 和闪存存储、混合存储、混合云存储、备份软件和设备以及云存储。 选择适合于您用例的存储很重要。 以下是 NAS 和 SAN 的不同之处

SAN

  • 多设备网络
  • 块存储系统
  • 光纤通道网络
  • 针对多位用户进行了优化
  • 性能更快
  • 高度可扩展
  • 成本更高且设置复杂

NAS

  • 单个存储设备或 RAID
  • 文件存储系统
  • TCP/IP 以太网
  • 受限用户
  • 限速
  • 扩展选项有限
  • 成本更低且易于设置

云存储

云存储是一种网上在线存储(英语:Cloud storage)的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上。托管(hosting)公司运营大型的数据中心,需要数据存储托管的人,则通过向其购买或租赁存储空间的方式,来满足数据存储的需求。数据中心营运商根据客户的需求,在后端准备存储虚拟化的资源,并将其以存储资源池(storage pool)的方式提供,客户便可自行使用此存储资源池来存放文件或对象。实际上,这些资源可能被分布在众多的服务器主机上。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/944268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tp5使用redis及redis7.2安装到window系统上面

redis安装教程 redis7.2安装到window系统上面 https://download.csdn.net/download/qq_39161501/88269037 解决方案&#xff1a;修改配置php.ini文件 打开Apache目录下的php.ini文件&#xff0c;搜索extension&#xff0c;在空白处加上下列代码&#xff1a; 注&#xff1a;e…

Cloudpods 私有云平台有哪些优势?

作为一套完整的私有云管理软件&#xff0c;我们经常会被问到 Cloudpods 和其他的同类产品相比&#xff0c;有哪些优势&#xff1f;我总结了 2 个方面&#xff0c;供大家参考。 功能方面 产品化&#xff0c;开箱即用&#xff0c;易用性较高&#xff0c;基本上都可以傻瓜式的操…

网络直播源码UDP协议搭建:为平台注入一份力量

网络直播源码中的UDP协议的定义&#xff1a; UDP协议又名用户数据报协议&#xff0c;是一种轻量级、无连接的协议。在网络直播源码平台中&#xff0c;UDP协议有着高速传输与实时性的能力&#xff0c;尤其是在网络直播源码实时性要求较高的场景&#xff0c;UDP协议的应用有着重要…

GDB 源码分析 -- 断点源码解析

文章目录 一、断点简介1.1 硬件断点1.2 软件断点 二、断点源码分析2.1 断点相关结构体2.1.1 struct breakpoint2.1.2 struct bp_location 2.2 断点源码简介2.3 break设置断点2.4 enable break2.5 disable breakpoint2.6 delete breakpoint2.7 info break 命令源码解析 三、Linu…

我想开通期权?如何开通期权账户?

场内期权的合约由交易所统一标准化定制&#xff0c;大家面对的同一个合约对应的价格都是一致的&#xff0c;比较公开透明&#xff0c;期权开户当天不能交易的&#xff0c;期权开户需要满足20日日均50万及半年交易经验即可操作&#xff0c;下文科普我想开通期权&#xff1f;如何…

软件测试的CMA和CNAS分别是什么?有什么用途和区别?

各行各业都有不同的证书&#xff0c;第三方软件检测机构也需要经过考核检验以获取认可。今天我们将围绕软件测试的CMA和CNAS展开讨论&#xff0c;以帮助您更好地了解它们的定义、区别和用途。 一、CMA软件测试&#xff1a; 1、定义&#xff1a;CMA软件测试是指基于中国计量认…

maven部署

一、下载Maven 地址&#xff1a;Maven – Download Apache Maven 二、解压缩&#xff0c;设置环境变量 tar -xvf apache-maven-3.8.8-bin.tar.gz export MAVEN_HOME/opt/apache-maven-3.8.8 export PATH$MAVEN_HOME/bin:$PATH echo $MAVEN_HOME echo $PATH mvn -v

从零开始的Hadoop学习(四)| SSH无密登录配置、集群配置

1. SSH 无密登录配置 1.1 配置 ssh &#xff08;1&#xff09;基本语法 ssh 另一台电脑的IP地址 &#xff08;2&#xff09;ssh 连接时出现 Host key verification failed 的解决方法 [atguiguhadoop102 ~]$ ssh hadoop103&#xff08;3&#xff09;回退到 hadoop102 [at…

linux离线安装rdbtools,需先安装python

离线安装python3 下载python包&#xff0c;下载地址&#xff1a;https://www.python.org/ftp/python/ 我选的是https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz 将文件上传至linux服务器&#xff0c;解压 tar -xf Python-3.9.0.tgz cd Python-3.9.0 mkdir /usr/l…

SpringBoot v2.7.x+ 整合Swagger3入坑记?

目录 一、依赖 二、集成Swagger Java Config 三、配置完毕 四、解决方案 彩蛋 想尝鲜&#xff0c;坑也多&#xff0c;一起入个坑~ 一、依赖 SpringBoot版本&#xff1a;2.7.14 Swagger版本&#xff1a;3.0.0 <dependency><groupId>com.github.xiaoymin<…

Java面试之斐波那契数列(Fibonacci)及其应用:青蛙跳台阶问题

文章目录 一、斐波那契数列问题1.1 题目1.2 什么是斐波那契数列1.3 效率很低的解法&#xff1a;递归1.4 递归缺点分析 二、比较好的解决办法2.1 保存数列中间项2.2 从下往上计算 三、公式法四、青蛙跳台阶问题4.1 题目及分析4.2 代码实现 一、斐波那契数列问题 1.1 题目 写一…

制作鲜花商城小程序的详细步骤

如果你是一个新手商家&#xff0c;想要进入鲜花团购市场&#xff0c;但是不知道如何制作一个小程序商城&#xff0c;那么这篇文章就是为你准备的。以下是制作鲜花团购小程序商城的详细步骤&#xff1a; 1. 登录乔拓云平台后台&#xff0c;进入商城管理页面 首先&#xff0c;你需…

Shopee测评补单技巧:优化商品流量与权重

在Shopee平台上进行测评是一种低成本、高回报的推广方式&#xff0c;可以对商品的流量、转化率、质量分和权重等多个指标起到辅助作用。以下是一些Shopee测评的技巧和注意事项&#xff1a; 1. 测评原理与周期&#xff1a; Shopee的新品周期为7天&#xff0c;平台会在这段时间…

【管理运筹学】第 6 章 | 运输问题(4,表上作业法 |闭回路调整法以及特殊情况 | 产销不平衡的运输问题)

文章目录 引言二、表上作业法2.3 改进的方法 —— 闭回路调整法2.4 表上作业法中的特殊情况&#xff08;一&#xff09;无穷多最优解&#xff08;二&#xff09;退化 三、产销不平衡的运输问题3.1 产量大于销量3.2 销量大于产量 写在最后 引言 接下来我们学习表上作业法的最后…

图论算法基础:单源最短路径Dijkstra算法分析

文章目录 图的邻接矩阵 一.Dijkstra算法分析算法的核心逻辑要素算法的执行逻辑 二.Dijkstra算法接口实现邻接矩阵堆优化版本: 图的邻接矩阵 namespace Graph_Structure {//Vertex是代表顶点的数据类型,Weight是边的权值的数据类型,MAX_W是权值的上限值(表示不相两)//Direction…

项目 - 后端技术栈转型方案

前言 某开发项目的后端技术栈比较老了&#xff0c;现在想换到新的技术栈上。使用更好的模式、设计思想、更合理的架构等&#xff0c;为未来的需求迭代做铺垫。怎么办呢&#xff1f;假设系统目前在线上运行着的&#xff0c;直接整体换的话耗时太久&#xff0c;且中间还有新的需…

【嵌入式】Keil5自带JLink识别不到芯片(unkown to this version of the jlink software)的处理

目录 一 问题现象 二 原因分析 三 问题处理 一 问题现象 使用了一款新的嵌入式芯片&#xff0c;灵动微MM32SPIN27PF&#xff0c;安装了官方提供的J-Link Pack支持包。 【1】直接使用 JLink_V694a 可以正常烧写程序&#xff1b; 【2】使用Keil5烧写失败&#xff0c;显示报错“…

demo的改进和完善(首页添加介绍和图片)

1.在首页添加介绍 将布局→ 区域→ 静态内容拖拽到body中→ 标题 更改为自己想要的名称→ 源 写入html代码 《学习demo》是用来记录我的学习过程中遇到的问题及解决方案&#xff0c;见证了我的进步和成长 <hr> 相关内容可见<a href"https://blog.csdn.net/clove…

你的住宅安全吗?这个技能赶紧学学

随着城市化的不断加速和人口增长&#xff0c;住宅小区的管理和安全问题也愈发凸显出来。在这种背景下&#xff0c;门禁监控系统成为了一种既有效又实用的解决方案。 门禁监控系统不仅可以控制和管理出入小区的人员和车辆&#xff0c;还可以提供实时监控和记录&#xff0c;为小区…

视频监控/视频汇聚/视频云存储EasyCVR平台HLS流集成在小程序无法播放的问题排查

安防视频/视频云存储/视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频…