基于对象存储OSS快速搭建网盘

news/2025/2/10 14:07:04/文章来源:https://www.cnblogs.com/flyingsir/p/18707735

基于对象存储OSS快速搭建网盘

通过以上几个课时的学习,小浩对阿里云云上存储产品类型和特性有了一定的了解。小浩需要使用云上资源搭建个人网盘。在搭建个人网盘前,小浩梳理了个人网盘的架构图:

  • 个人网盘软件部署在ECS实例上,使用ECS实例公网IP对外提供个人网盘服务。
  • 个人网盘软件后端存储使用对象存储OSS 。

     

    决定尝试以下两种方案:

    搭建方案一:ossbrowser+OSS,通过oss自有的图形化工具来作为网盘进行上传下载等操作

    操作步骤

    • 通过ossbrowser创建Bucket

    • 对Bucket进行文件上传、下载、分享等操作

       

       

       

      搭建方案二:云服务器ECS+OSS,通过ECS安装Cloudreve提供网盘页面服务,对象存储OSS提供网盘存储服务。当您使用个人网盘时,访问部署cloudreve ECS的公网IP地址即可完成文件上传、下载、删除、分享等服务。

       
      操作步骤
      • ECS安装cloudreve
       
      #通过workbench登陆已创建的ECS实例终端
      #下载cloudreve
      wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar.gz#解压安装包
      tar -xzvf cloudreve_3.3.1_linux_amd64.tar.gz
      chmod +x ./cloudreve     #授予其可执行权限
      ./cloudreve               #运行
      • ECS安装ossfs
       
      #通过workbench登陆已创建的ECS实例终端
      #下载ossfs
      wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos8.0_x86_64.rpm#安装ossfs
      yum install -y ./ossfs_1.80.6_centos8.0_x86_64.rpm
      
      • 挂载oss Bucket
       
      #通过workbench登陆已创建的ECS实例终端 
      #创建要挂载的目录
      mkdir oss#将Bucket挂载到指定目录oss 执行
      ossfs {您创建的Bucket} {上一步创建的目录 oss} -o url={访问的域名endpoint}#挂载成功后验证执行
      df -h     
      • 配置网盘

        • 运行cloudreve

        • 打开浏览器,访问http://<ECS公网地址>:5212,依次输入管理员账号和密码,单击登录。

        • cloudreve主界面右上角,单击管理面板进行配置存储策略和用户组

        • 配置完成后,可以上传文件操作

       

      效果测试
      • 通过控制台查看所配置的bucket的相关目录下是否有上传成功的文件

      • 通过前面的工具ossfs 可以在您创建的云服务器实例上进行查看

      • 也可以通过ossbrowser、ossutil或者SDK对文件进行查看操作,查看文件是否存在等

      详细操作请点击练习实验进入沙箱实验练习。

      至此,小浩已经熟悉了OSS的基础概念,掌握了OSS的常用功能和使用流程,他想继续学习一下文件存储NAS,并对比两者在使用上的区别。

 
 

文件存储NAS入门

基于前面对存储产品的学习,小浩已经了解到文件存储NAS是一个可大规模共享访问、弹性扩展的分布式文件系统,那如果用来作为公司的文件存储应用,该如何访问呢?文件存储有哪些使用的注意事项呢?在开始使用前,我们先一起学习一下文件存储的基础概念与功能特性。

 

文件存储NAS基础概念与功能特性

基础概念

  • 地域(Region):数据中心所在的物理位置,创建文件系统时指定,创建成功后不能更换地域,可以对同地域、跨地域或线下IDC的计算节点进行挂载访问

  • 可用区:在同一地域内,电力和网络互相独立的物理区域。创建文件系统时指定,例如,华东1杭州可用区A、B

  • 专有网络VPC:一种虚拟私有网络,VPC之间相互隔离,可以使用云企业网连通,拥有一个网络环境是计算节点访问NAS文件系统所需的前提条件

  • 文件系统:存储文件的地方,通过计算节点挂载访问。以传统的目录树形式管理文件的数据和元数据。支持数百个计算节点同时访问,进行数据共享和高并发读写

  • 挂载点:NAS文件系统在网络环境中的连接点,以域名形式出现,用以实现数据的传输

  • 挂载:将计算节点与NAS文件系统相连接的操作。完成挂载后,计算节点可以访问NAS文件系统中的数据

文件存储NAS可支持上千台弹性计算ECS、容器服务ACK等计算节点共享访问。计算节点和NAS各模块的关系如下图所示:

 

  • 产品规格:NAS提供了通用型、极速型、文件存储CPFS等存储类型,请根据自身业务负载和使用场景选择合适的存储类型,如何进行选择请参考选型

通用型NAS支持数据生命周期管理,开启生命周期管理后,可以根据其配置策略(如距最近访问14天以上)超过14天未访问的数据会自动实现以文件粒度的冷数据沉降到低频介质,以降低存储成本,详情可参考低频介质文档

 

  • 权限组:用于配置通过不同挂载点访问文件系统的权限信息,包括授权IP地址、读写操作权限等

      • 一个挂载点必须绑定且只能绑定一个权限组

      • 一个权限组可以被多个挂载点绑定

      • 默认权限组不允许编辑修改

  • NFS协议:计算节点挂载访问NAS文件系统时所使用的一种软件协议,Linux计算实例推荐选择NFS协议

  • SMB协议:计算节点挂载访问NAS文件系统时所使用的一种软件协议,Windows计算实例推荐选择SMB协议

  • POSIX接口:Linux操作系统用来访问文件的一套标准接口,可在应用程序中使用编程语言调用,实现对文件的各种操作

 

 

功能特性

文件存储NAS作为一个可共享访问、弹性扩展、高可靠、高性能的分布式文件系统,支持任意类型计算节点挂载访问,具有丰富的功能特性,包括:容量弹性可扩展、共享访问、丰富的协议兼容、安全控制与合规、加密、灵活的访问模式、数据传输以及数据备份等,详情可参考NAS产品文档-功能特性

 

 

 

文件存储NAS使用流程

小浩学习完文件存储的基础概念和功能特性之后,为了将NAS用于实际业务中,需要继续学习文件存储NAS的使用流程。

以下是使用NAS的初始化流程步骤:

  1. 首先我们通过登陆阿里云控制台找到NAS服务,查看我们是否已开通NAS服务

  2. 开通NAS服务之后,我们即可创建文件系统,在创建文件系统时可根据自身业务负载和场景需求选择地域、可用区、产品规格、协议类型(NFS、SMB)、vpc、回收站是否开通、生命周期管理等配置信息

  3. 我们在添加挂载点前,可以先创建权限组和规则(白名单机制,对不同的ip和网段授予不同访问权限),需注意默认权限组不允许修改编辑

  4. 文件系统创建完成之后,通过添加挂载点,然后完成文件系统挂载(使用ECS挂载、容器挂载、其它挂载场景),可通过控制台一键挂载、命令行挂载等

    • 通用型NAS最多可以配置两个挂载点,极速型NAS只能配置一个挂载点

    • 一个网络环境中仅需要一个挂载点即可被同网络环境下的数百个计算节点同时使用

  5. 文件系统挂载完成之后,可查询其挂载状态,对文件系统进行读写操作、也可将本地文件或其它存储设备上的文件迁移至文件系统

  6. 若后续不在需要使用文件系统且文件系统中数据已废弃时,可以卸载文件系统

        以上为使用NAS的初始化流程,详情可参考官方文档

 

学习了文件存储NAS的使用流程之后,想要动手实践一下,创建属于自己的文件系统,他该如何操作呢?下面以创建通用型NAS为示例(通过控制台创建其它类型文件系统的步骤类似)

 

 

 

创建文件系统

 

说明

    • 当计算节点和挂载点所属同一个交换机且该交换机与文件系统在同一可用区时,NAS的性能最优
    • 通用型NAS支持跨可用区挂载;极速型NAS推荐在同可用区挂载

    • 挂载完成后可在ECS实例终端对文件系统进行读写操作

步骤

    1. 登录NAS控制台

    2. 在概览页面,单击创建通用型NAS

    3. 在创建通用型NAS面板,配置文件系统相关信息,如下三张图所示

    4. 单击立即购买,完成文件系统的创建

       

       

      验证是否创建成功

       

      步骤

        1. 登录NAS控制台

        2. 单击文件系统-->文件系统列表,在列表中查看文件系统是否创建完成

           

          已经创建了属于自己的文件系统,他需要把该文件系统挂载到他的计算实例上,于是他继续研究控制台如何实现ECS挂载文件系统:

           

          通过控制台实现ECS实例一键挂载文件系统

           

          步骤

            1. 登录NAS控制台

            2. 在左侧导航栏,选择文件系统 > 文件系统列表

            3. 在页面上方,选择地域(您创建的文件系统所属的地域)

            4. 在文件系统列表页面,单击待挂载文件系统ID前的图标

            5. 在挂载点列表,单击添加到ECS > 挂载

               

 
 
  • 在挂载到ECS的对话框,配置如下挂载选项:

     

     

    查询是否挂载成功

     

    步骤

      • 单击目标文件系统ID前的图标
      • 在挂载点列表,单击添加到ECS > 查询
      • 在查询ECS挂载状态对话框,选择待查询的ECS实例,然后单击查询
      • 在ECS实例详情页面,查看ECS实例详情及挂载配置,显示已挂载,表明已挂载
      •   
      •  更多挂载访问方式,请参考NAS产品文档-挂载访问

 
 

基于文件存储NAS快速搭建网盘

 

在前面的课程学习中,小浩已通过实战创建了自己的文件系统,同时完成了ECS实例一键挂载文件系统,那如何将NAS用于实际业务中呢?如何基于ECS和文件存储NAS完成网盘的搭建呢?

 

网盘场景说明

本节,我们通过ECS部署OwnCloud和httpd(Apache Web服务器),后端存储挂载阿里云文件存储NAS,完成网盘的搭建,小浩通过ECS的公网IP访问网盘服务,即可完成文件的读写操作;网盘架构图示如下:

 

什么是OwnCloud

OwnCloud是一个开源免费的云存储项目,提供了网页界面和支持多平台的客户端(Windows、linux、MacOS、IOS、Android)使用,因其是基于PHP开发的云存储软件,需要PHP运行环境

什么是httpd

httpd是一款Apache Web服务器,非常流行的开源软件项目,基于标准的 HTTP 网络协议提供的网页浏览服务,可运行在 Linux、UNIX、Windows 等多种操作系统平台,详情可参考httpd



操作步骤

  • 阿里云服务器ECS
    • 创建ECS实例

    • 通过Workbench登陆ECS实例

    • 执行相关Linux命令

  • OwnCloud:基于PHP开发的云存储软件,需要PHP运行环境,
    • 下载并安装OwnCloud

    • 配置OwnCloud工作环境

  • Apache:
    • 需掌握其安装、启停、配置等命令

  • NAS文件系统挂载
    • 实验中使用命令行挂载

详细的实验内容,请前往练习实验进行学习

至此,小浩已初步掌握了阿里云对象存储OSS和文件存储NAS的基础内容,并能通过OSS和NAS完成网盘的搭建,在使用过程中小浩发现使用云存储的诸多好处(无需安装运维,开通即用、按量付费等),也激发了小浩继续探索云存储的兴趣。

 
 

课程总结与补充

通过本课程我们学习了:

  • 传统存储与云存储的区别
  • 了解阿里云云存储类型及其优势
  • 如何识别和区分阿里云存储服务
  • 掌握如何根据自身业务需求选择合适的阿里云存储服务
  • 掌握阿里云对象存储、文件存储的基本概念、功能及资源访问方式
  • 如何通过阿里云对象存储、文件存储快速搭建网盘

那如何在日常工作中更好的使用和管理我们的存储资源?如:

  • 如何对我们的资源进行访问控制,保护数据安全
  • 随着业务发展,需求多变,如何更好的对数据进行分析处理
  • 如何更好的进行成本控制、性能优化
  • 如何监控我们所用服务的运行状态,进行及时的告警,保障业务的可用性、连续性

诸如以上挑战和问题,我们将在接下来的课程中进一步的讲解。

 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开启对话式智能分析新纪元——Wyn商业智能 BI 携手Deepseek 驱动数据分析变革

2月18号,Wyn 商业智能 V8.0Update1 版本将重磅推出对话式智能分析,集成Deepseek R1大模型,通过AI技术的深度融合,致力于打造"会思考的BI系统",让数据价值触手可及,助力企业实现从数据洞察到决策执行的敏捷闭环。 一、BI + AI:业务革新:自然语言驱动,让数据分…

使用echarts写关系图graph

关系图是 ECharts 提供的图表类型之一,用于展示节点(实体)之间的关系。创建一个关系图涉及到定义节点(nodes)和边(links)的数据,以及配置图表的样式和行为。 echarts针对关系图提供了三种布局;layout: "none" | "circular" | "force"no…

替换word中英文““为中文双引号“”

查找内容为(")(*)("),替换内容为"\3"

振弦式渗压计:将压力转换为频率信号的高灵敏度装置 长期测量水工结构物和土体内部渗透水压力

振弦式渗压计:将压力转换为频率信号的高灵敏度装置 长期测量水工结构物和土体内部渗透水压力振弦式渗压计是一种用于感受压力并将其转换为与压力成一定关系的频率信号输出的装置。其典型结构包括压力感应膜、振弦、电磁激振与信号拾取装置、密封外壳和屏蔽电缆等组件。GEO OSx…

DeepSeek入门到精通

入门到精通推理模型 • 例如:DeepSeek-R1,GPT-o3在逻辑推理、数学推理和实时问题解决方面表现突出。 推理大模型: 推理大模型是指能够在传统的大语言模型基础上,强化推理、逻辑分析和决策能力的模型。它 们通常具备额外的技术,比如强化学习、神经符号推理、元学习等,来增…

SAP ECC 740 创建表的索引

step1:进入ABAP数据字典(se11); step2:输入表名并点击“显示”; step3:单击“索引” step4:单击“创建索引”; step5:之后进行索引的创建

this关键字---》2

三.this的用法: 1.在构造器中调用另一个构造器 (注意:该语句要在第一条,只能在构造器中使用) 2.调用成员方法: this.方法名(参数列表) 3.不能再类外部使用 4.用于访问类的属性,是有就近原则在的 总之,this可以用来访问属性、成员方法和构造器 5.this用来区分局部变量和属性 …

DeepSeek是什么?

DeepSeek是一家专注通用人工智能(AGI)的中国科技公司,主攻大模型研发与应 用。 • DeepSeek-R1是其开源的推理模型,擅长处理复杂任务且可免费商用。 AI + 国产 + 免费 + 开源 + 强大 Deepseek可以做什么? 直接面向用户或者支持开发者,提供智能对话、文本生成、语义理解…

DeepSeek特点

https://www.deepseek.com/DeepSeek是一款功能强大的AI模型,它具有多个显著的特点,以下是对DeepSeek特点的详细归纳: 一、强大的技术能力‌推理能力‌:DeepSeek在推理能力上与国际领先的模型如OpenAI的GPT-4相媲美,能够在解决数学难题、分析复杂的法律条文等方面展现出强大…

manim边学边做--通用变换

在 Manim 动画制作中,Transform、TransformFromCopy、ReplacementTransform和Restore是四个通用的对象变换动画类。 这几个类能够实现从一个对象到另一个对象的平滑过渡、复制并变换、直接替换以及状态恢复等多种效果。Transform:将一个Mobject平滑地变换为另一个Mobject Tra…

执行abp命令时,出现死循环解决方案

今天把长时间不用的ABP Cli进行升级 将原有:volo.abp.cli卸载。安装了新的 Volo.Abp.Studio.Cli。 任何执行abp new Acme.BookStore -m none --theme leptonx-lite -csf创建项目。 于是出现以下问题(Abp找不到对应的包):分析原因 本人是设置过Nuget.cofig文件中 全局包文件…

Git: submodule 子模块简明教程

序 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。 Git 通过子模块来解决这个问题。 子模块允许你将一个 Gi…