NFS文件服务器的使用方法
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">持久化存储:NFS</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">1 NFS 工作原理</a></li><li><a href="#_lab2_0_1">2 在项目中的使用场景</a></li><li><a href="#_lab2_0_2">3 目前完成</a></li><ul class="third_class_ul"><li><a href="#_label3_0_2_0">3.1 在 Broker 部署 NFS 服务器</a></li><li><a href="#_label3_0_2_1">3.2 在 Pve2 的 master 部署 NFS 客户端</a></li></ul></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>持久化存储:NFS</h2><p class="maodian"><a name="_lab2_0_0"></a></p><h3>1 NFS 工作原理</h3>
<ul><li>NFS(Network File System)是一种分布式文件系统协议,它允许用户在网络上通过一个网络共享访问文件,就如同访问本地存储一样。</li><li>NFS 工作时,服务端将文件系统中的一个或多个目录“导出”,使得客户端可以“挂载”这些目录到客户端本地的文件系统树中。一旦挂载,用户和应用程序就可以访问这些目录中的文件,就像访问本地文件一样。</li></ul>
<p class="maodian"><a name="_lab2_0_1"></a></p><h3>2 在项目中的使用场景</h3>
<ul><li>如果待传输数据存储在k8s工作节点的文件系统:在 Broker 部署一个 NFS 服务器,工作节点(如果有传输数据的需求)可以作为 NFS 客户端挂载到 NFS 服务器,进而通过共享目录进行文件/数据传输。</li><li>如果待传输数据存储在Pods的文件系统:利用 k8s 持久卷在 Pod 上部署 NFS 客户端,当 Pod 有传输数据的需求时挂载到 NFS 服务器,进而通过共享目录进行文件/数据传输。</li></ul>
<p class="maodian"><a name="_lab2_0_2"></a></p><h3>3 目前完成</h3>
<p>上述的场景一:在 Broker 中部署 NFS 服务器,Pve2 的 master 节点部署 NFS 客户端并挂载到 NFS 服务器上,实现Broker和 Pve2 的 master 节点 可进行某个目录的数据共享。具体步骤:</p>
<p class="maodian"><a name="_label3_0_2_0"></a></p><h4>3.1 在 Broker 部署 NFS 服务器</h4>
<p>1. 安装 NFS 软件包</p>
<div class="jb51code"><pre class="brush:bash;">sudo apt update
sudo apt install nfs-kernel-server</pre></div>
<p>2. 配置共享数据目录</p>
<p>创建一个目录来存放共享数据,例如 <code>/var/nfs/general</code>(这个目录可以根据需要进行更改):</p>
<div class="jb51code"><pre class="brush:bash;">sudo mkdir -p /var/nfs/general
sudo chown nobody:nogroup /var/nfs/general</pre></div>
<p>编辑<code>/etc/exports</code> 文件,配置 NFS 服务器数据导出目录及访问 NFS 服务器的客户端机器权限:</p>
<div class="jb51code"><pre class="brush:bash;">/var/nfs/general *(rw,sync,no_subtree_check)</pre></div>
<p><code>*</code> 代表 ,客户端网段无限制,均可以挂载到服务器。</p>
<p>也可设置网段,比如:</p>
<div class="jb51code"><pre class="brush:bash;">/var/nfs/general 172.100.0.0/24(rw,sync,no_subtree_check)</pre></div>
<p>应用配置:</p>
<div class="jb51code"><pre class="brush:bash;">sudo exportfs -ra</pre></div>
<blockquote><p>[!NOTE]</p>
<p>检查 NFS 状态以及配置 NFS 相关的命令:</p>修改完 /etc/exports 文件后,重新导出共享:</blockquote>
<div class="jb51code"><pre class="brush:bash;">sudo exportfs -arv</pre></div>
<div class="jb51code"><pre class="brush:bash;">sudo systemctl restart nfs-server</pre></div>
<blockquote>检查 NFS 服务状态</blockquote>
<div class="jb51code"><pre class="brush:bash;">sudo systemctl status nfs-server</pre></div>
<blockquote>设置 NFS 服务器在系统启动时自动运行</blockquote>
<div class="jb51code"><pre class="brush:bash;">sudo systemctl enable nfs-kernel-server</pre></div>
<blockquote>查看导出(共享)目录</blockquote>
<div class="jb51code"><pre class="brush:bash;">sudo exportfs -v</pre></div>
<p><img alt="image-20241121222535844" src="https://img.jbzj.com/file_images/article/202411/2024112211300024.png" /></p>
<p class="maodian"><a name="_label3_0_2_1"></a></p><h4>3.2 在 Pve2 的 master 部署 NFS 客户端</h4>
<p>1. 创建挂载点</p>
<div class="jb51code"><pre class="brush:bash;">sudo mkdir /mnt/nfs</pre></div>
<p>2. 安装 NFS 软件包</p>
<div class="jb51code"><pre class="brush:bash;">sudo apt update
sudo apt install nfs-kernel-server</pre></div>
<p>3. 挂载 NFS 共享目录</p>
<div class="jb51code"><pre class="brush:bash;">sudo mount -t nfs 172.100.0.109:/var/nfs/general /mnt/nfs
sudo mount -o rw -t nfs 172.100.0.109:/var/nfs/pvc /mnt/nfs-pvc</pre></div>
<p>4. 检查挂载状态</p>
<p>使用 <code>df -h</code> 命令查看文件系统的挂载情况和磁盘空间使用情况。这个命令会列出所有挂载的文件系统及其大小、已用空间、可用空间、使用百分比和挂载点。</p>
<div class="jb51code"><pre class="brush:bash;">df -h</pre></div>
<p style="text-align:center"><img alt="image-20241121222556959" src="https://img.jbzj.com/file_images/article/202411/2024112211300025.png" /></p>
<p> 至此,broker 的 <code>/var/nfs/general</code> 和 pve2 的 master 的 <code>/mnt/nfs</code> 目录共享,不管谁创建/删除/添加文件都会保持同步。</p>
<p>参考链接:<br /><a href="https://cloud.tencent.com/developer/article/2365976" rel="external nofollow" target="_blank">Kubernetes 持久化存储之 NFS</a></p>
<p>到此这篇关于NFS文件服务器的文章就介绍到这了,更多相关NFS文件服务器内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
頁:
[1]