NAS—网络附加存储

embedded/2024/9/20 1:22:30/ 标签: 网络, 服务器, 运维

关键词:私有化存储、Nas、云盘、群晖、Tailscale、

前言

身处于互联网时代的我们,几乎每时每刻都在与计算机打交道,而软件则作为我们和计算机之间沟通的桥梁,因此可以认为软件的作用是:将计算机能力进行包装,并提供一种简单易懂的人为操作方式

从本质上看计算机提供的能力主要分为两种,分别是计算和存储。网盘相信大家都使用过吧(某里云盘、某度云盘),它就是利用计算机存储能力的一个典型应用,本篇文章就让我们一起来了解一下网盘的工作方式是怎样的,以及它有怎样的优缺点。

存储设备发展史

为计算机提供存储能力的硬件是硬盘,硬盘可以将计算机中的文档、图片、视频等信息以另一种形式保存在其介质中。

硬盘在电脑中的位置

但是硬盘终究是电脑内部的硬件,移动性较差,毕竟不会真的有人整天扛着一台电脑跑来跑去。因此一些便携式移动存储设备(U盘/移动硬盘)诞生了, 该类设备通常做工精巧,并且可以通过USB接口连接到电脑上进行数据传输。

常见的移动存储设备

或许正是因为设备体积小,所以经常会出现丢失、损毁等情况。于是一些机构嗅到商机,开始依托互联网构建大型的数据中心,并通过提供软件客户端的形式对公众提供存储服务,从而形成了现在的公有云盘
数据中心示意图
由于公有云盘所提供的客户端方便快捷,直击用户痛点,因此迅速抢占了用户市场。

上传文件及异地下载流程

个人私有化存储系统

云盘也有着属于自己的局限性,当用户上传一份文件到云盘时,最终承载数据的物理介质(硬盘)是由云盘运营商管理的,这意味运营商对这些数据文件有着绝对的控制权运营商还会对内部文件进行扫描,从而清理一些不合规的文件,或许这就是你的"学习视频"不翼而飞的原因。因此私密性的数据文件不适合放入公有云盘(如:商业资料、数据库、用户信息等)。

随后私有化存储方案逐渐走进大众的视线,NAS(Network Attached Storage)中文译为网络附加存储,它是一个抽象的概念,是"通过互联网连接本地存储设备实现网络存储功能"的统称,从这个层面考虑,云盘其实也属于NAS的范畴,现在市面上也有专门做NAS主机的一些厂商,它们通过提供专用的设备(电脑)、操作系统、软件等辅助人们快速搭建私有化NAS系统。

群晖DS920+

这类NAS专用主机通常造价昂贵,像上图这个四盘位(可以装4个硬盘)的群晖DS920+,不含硬盘就得三千多元,好在我们可以选择使用个人闲置电脑安装"黑群晖"。

群晖NAS

群晖系统是一个专注于私有化存储的操作系统,在群晖系统中以"共享文件夹"的形式为局域网中的其他主机提供网络存储功能。通俗点说,安装了群晖系统的主机类似于一个文件服务器,为其他电脑提供文件存储功能。

由于群晖系统的安装并不复杂,因此本文就不再赘述了。

局域网文件共享

在群晖系统中创建了共享文件夹后,同一个局域网中的其他主机就可以通过主机名或IP地址访问群晖系统中的共享文件夹,从而进行文件上传及下载。

群晖系统共享文件夹示意图
Window连接群晖主机示意图

从Windows主机向群晖主机传输文件示意图

基于Tailscale实现互联网共享

如果希望在互联网中连接私有NAS存储系统,那么就需要打通互联网与本地NAS系统的通信问题,此处可以选择使用Tailscale组建大内网。

Tailscale并不是一门新技术,而是一个依赖于VPN技术(Wireguard)的组网工具,它可以在互联网中帮助我们组建私有虚拟局域网(大内网),通过Tailscale组成的网络结构如下所示

tailscale虚拟局域网模型

使用tailscale组网需要在每个设备中都安装tailscale终端。

nas主机在tailscale内网中的ip地址

然后就可以在其他主机上使用tailscale中的内网地址上传及下载文件。

基于tailscale内网Ip从群晖NAS中下载文件示意图

结尾

NAS的实现有很多种,应用场景和玩法也很多,本文仅仅介绍了NAS的概念,希望可以给刚接触Nas的小伙伴们一些启发。

如果觉得文章写得还不错,还望大家多多分享,毕竟1+1>2嘛。


http://www.ppmy.cn/embedded/56230.html

相关文章

K8s简单入门

Kubernetes (K8s) 是一个开源的容器编排平台,用于自动部署、扩展和管理容器化应用程序。以下是 Kubernetes 的入门指南,涵盖了基本概念、安装、常用命令以及部署示例。 基本概念 Pod:Kubernetes 中最小的可部署单元,一个 Pod 可…

《侃侃而谈 · 为什么动笔》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻一周,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

Django项目 - 合并PDF文件

合并PDF文件可以很好将信息做整合。 博主实现了下面功能: 检测上传的文件是否是PDF从本地拖拽PDF文件到该系统显示需合并文件总数对需合并PDF文件进行排序,删除可预览合并PDF文件下载合并好的PDF文件 代码存放在码云:代码 创作不易&#…

HDU 1506 Largest Rectangle in a Histogram (DP或单调栈+笛卡尔树)

传送门 题目大意: 有N条的长条状的矩形,宽度都为1,第i条高度为Hi,相邻的竖立在x轴上,求最大的子矩形面积 DP思路及代码 求出当前点能够到达的最左边和最右边的位置,答案就是(最右边-最左边&…

vue响应式原理细节分享

在讲解之前,我们先了解一下数据响应式是什么?所谓数据响应式就是建立响应式数据与依赖(调用了响应式数据的操作)之间的关系,当响应式数据发生变化时,可以通知那些使用了这些响应式数据的依赖操作进行相关更…

C#委托事件的实现

1、事件 在C#中事件是一种特殊的委托类型,用于在对象之间提供一种基于观察者模式的通知机制。 1.1、事件的发送方定义了一个委托,委托类型的声明包含了事件的签名,即事件处理器方法的签名。 1.2、事件的订阅者可以通过+=运算符来注册事件处理器。 1.3、当事件发送方触发事件…

22、PHP 实现连续子数组的最大和、整数中1出现的次数

题目: PHP 实现连续子数组的最大和 描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。 今天测试组开完会后,他又发话了:在古老的一维模式识别中, 常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。 但是,如果向量中包含负数…

记一次面试

Linux查日志,怎么把最后1000行写到另一个文件中 在Linux中,如果你想要查看日志文件的最后1000行并将其写入到另一个文件中,你可以使用tail命令。tail命令默认用于输出文件的最后几行。 以下是如何使用tail命令将日志文件的最后1000行写入到另…

如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 对于大多数邮件服务器管理员来说,被错误地标记为垃圾邮件发送者的沮丧并不陌生。除了排除服务器被入侵的可能性外&…

WPF自定义模板--TreeView 实现菜单连接线

有些小伙伴说&#xff0c;在TreeView中&#xff0c;怎么每一个都加上连接线&#xff0c;进行显示连接。 代码和效果如下&#xff1a; 其实就是在原来的模板中增加一列显示线条&#xff0c;然后绘制即可 <Window x:Class"XH.TemplateLesson.TreeViewWindow"xmln…

【TS】TypeScript 中的 any 与 unknown:理解与实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 中的 any 与 unknown&#xff1a;理解与实践一、引言二、any&#x…

【介绍下SCSS的基本使用】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

2024最新!将mysql的数据导入到Solr

Solr导入mysql的数据 如何安装导入数据前准备配置Solr的Jar包以及Mysql驱动包1.1、将solr-8.11.3\dist下的两个包进行移动1.2、将mysql-connect包也移动到该位置1.3、重启Solr项目 配置xml2.1、第一步我们需要创建核心2.2、第二步修改xml(这里是结合19年的教程)2.3、 创建data-…

Kotlin设计模式:工厂方法详解

Kotlin设计模式&#xff1a;工厂方法详解 工厂方法模式&#xff08;Factory Method Pattern&#xff09;在Kotlin中是一种常见的设计模式&#xff0c;用于将对象创建的责任委派给单一的方法。本文将详细讲解这一模式的目的、实现方法以及使用场景&#xff0c;并通过具体的示例…

Python爬取国家医保平台公开数据

国家医保服务平台数据爬取python爬虫数据爬取医疗公开数据 定点医疗机构查询定点零售药店查询医保机构查询药品分类与代码查询 等等&#xff0c;数据都能爬 接口地址&#xff1a;/ebus/fuwu/api/nthl/api/CommQuery/queryFixedHospital 签名参数&#xff1a;signData {dat…

QQ录屏文件保存在哪里?一键教你快速查询

无论是记录重要的工作内容&#xff0c;还是分享生活中的点滴&#xff0c;屏幕录制都发挥着至关重要的作用。在众多屏幕录制工具中&#xff0c;qq录屏以其简单易用、功能丰富的特点&#xff0c;受到了广大用户的喜爱。本文将为您揭示qq录屏文件保存在哪里&#xff0c;帮助大家更…

[软件安装]linux下安装steam

1、下载安装包到linux系统 SteamTools 发行版 - Gitee.com 2、选择对应的版本 3、解压安装包steam &#xff08;1&#xff09;在opt路径下新建一个文件夹 sudo mkdir steam &#xff08;2&#xff09;进入压缩包路径下&#xff0c;打开终端&#xff0c;执行以下代码进行解压…

智能化浪潮下的二手车市场:如何构建高效的管理系统

在数字化时代背景下&#xff0c;二手车市场正经历着前所未有的变革。智能化管理系统以其高效、透明的特性&#xff0c;为解决市场长期存在的信息不对称和交易流程复杂问题提供了新思路。 一、二手车市场现状 二手车市场作为汽车行业的重要组成部分&#xff0c;正受到越来越多…

使用Java开发工具包会遇到哪些问题

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;Java作为一门广泛应用于企业级应用、安卓开发、大数据处理等领域的编程语言&#xff0c;其强大的跨平台能力和丰富的类库支持吸引了无数开发者。然而&#xff0c;在使用Java开发工具包(Java Development …

前端面试题(13)答案版

姓名&#xff1a; 面试时间&#xff1a; 面试岗位&#xff1a; 1. 介绍介绍自己的项目,权限怎么做?如何添加动态路由? - 答:对于项目介绍,我会重点介绍自己参与的主要功能模块,以及在项目中担任的角色和责任。 在权限管理方面,通常会采用基于…