拓冰建站拓冰建站
首页 / 资讯中心 / 正文

SeaWeedFS安装部署,介绍master模式和filer模式

目录SeaWeedFS简介SeaWeedfs安装与启动Linux安装SeaWeedFSSeaWeedfs启动SeaWeedfs的master模式操作上传下载文件上传文件可供选择的参数SeaWeedfs的filer模式Filer模式上传文件Filer模式下载文件Filer模式删除文件Filer模式更改文件Filer模式append追加文件Filer模式filermount挂载机制SeaWeedFS简介Seaweedfs是一个简单、高扩展性的分布式文件系统它的两个目标分别是存储数十亿级的文件快速响应文件。Seaweedfs选择以键值对key-file的实现方式这有点像“NoSQL”你可以称其为“NoFS”。Seaweedfs的中心节点center master并不会管理所有文件的元数据而仅仅管理文件卷file volume文件及其元数据的管理是由volume server实现的。这可以缓解center master的并发压力并且将文件元数据分配到volume server可以实现更快的文件访问只需一次磁盘读取操作。SeaWeedfs安装与启动Linux安装SeaWeedFSmkdir -p /myapp/seaweedfs cd /myapp/seaweedfs访问Releases · seaweedfs/seaweedfs · GitHub下载linux_amd64.tar.gz文件使用XShell工具下载到/myapp/seaweedfs路径。解压tar.gz 文件tar -xzvf linux_amd64.tar.gz生成一个weed可执行文件用于操作master和volume等。创建数据卷根目录以及各个数据卷目录、master数据目录和filter目录mkdir -p /myapp/seaweedfs/data/master mkdir -p /myapp/seaweedfs/data/vola mkdir -p /myapp/seaweedfs/data/volb mkdir -p /myapp/seaweedfs/data/volc mkdir -p /myapp/seaweedfs/data/vold mkdir -p /data/weedfs_data/filerSeaWeedfs启动启动SeaWeedfs可使用nohup命令进行后台运行并且将日志输出到文件中。启动master-defaultReplication001表示相同机架存储一份副本而且如果一个卷服务器没在相同的rack开启一个vol就会报错nohup ./weed -v3 master -mdir/myapp/seaweedfs/data/master -defaultReplication001 /myapp/seaweedfs/data/master/wdfsmaster.log 启动volume两个卷服务器放在同一个机架:nohup ./weed -v3 volume -port8081 -dir/myapp/seaweedfs/data/vola -mserverlocalhost:9333 -rackrack1 /myapp/seaweedfs/data/vola/wefsvola.log ​ nohup ./weed -v3 volume -port8082 -dir/myapp/seaweedfs/data/volb -mserverlocalhost:9333 -rackrack2 /myapp/seaweedfs/data/volb/wefsvolb.log ​ nohup ./weed -v3 volume -port8083 -dir/myapp/seaweedfs/data/volc -mserverlocalhost:9333 -rackrack3 /myapp/seaweedfs/data/volc/wefsvolc.log ​ nohup ./weed -v3 volume -port8084 -dir/myapp/seaweedfs/data/vold -mserverlocalhost:9333 -rackrack1 /myapp/seaweedfs/data/vold/wefsvold.log 开启filer服务器:nohup ./weed -v3 filer -port8888 -masterlocalhost:9333 /myapp/seaweedfs/data/filer/filer.log 开启挂载服务器nohup ./weed mount -filerlocalhost:8888 -dir/myapp/seaweedfs/data/filermount/data -filer.path/ /myapp/seaweedfs/data/filermount/wefsmount.log SeaWeedfs的master模式操作上传下载文件获取master委派的fid和publicUrl请求master利用curl来获取fid是什么设置备份属性来进行上传文件curl http://localhost:9333/dir/assign?replication001结果显示可通过获取的fid进行上传文件file指定文件的位置通过fid和url来进行上传文件文件上传到vola和voldcurl -F file./666.txt http://localhost:8081/2,01ddbfaf58c1通过wget下载文件路径2,01ddbfaf58c1是获取到的fidwget http://localhost:8081/2,01ddbfaf58c1所在目录会出现下载的文件结果显示上传文件可供选择的参数SeaWeedfs的filer模式Filer模式上传文件Filer模式上传文件原理filer服务器默认端口是8888上传大文件filer服务器先把大文件分成一个一个大约5m的小文件然后通过master主服务器获取小文件的fid和对应的卷服务器每一个fid对应着目录然后把小文件存到对应的卷服务器上。filer模式通过http请求上传文件指定文件的目录是test。上传一个500M的大文件访问地址ip:8888/test可以进入Filer可视化界面可以看到上传的文件filer模式查看大文件的chunks可以看到分片的具体信息Filer模式下载文件filer模式下载文件原理用户先通过如http://ip:8888/test/test.md 这样的请求去请求文件然后filer服务器拿到对应的文件目录去请求master服务器解析文件目录拿到对应的所有分片的fid每个分片有offsetmaster将每个分片合成一个大文件再返回给用户。发送如http://ip:8888/test/test.txt 这样以目录形式的http请求就可获得文件信息Filer模式删除文件filer模式删除文件原理删除文件只需要指定指定文件路径使用delete请求删除即可并且filermount挂载的文件也会被删除但是卷服务器里面的数据是被逻辑删除的真实数据还没有进行删除要进行清除回收站才能完成磁盘删除。目前垃圾收集在 master 中被硬编码为每 15 分钟运行一次。如果您的系统有多次删除被删除文件的磁盘空间不会被同步回收。有一个后台作业来检查卷磁盘使用情况。如果空白空间超过阈值默认为 0.3即 30%则真空作业将使卷只读创建仅包含现有文件的新卷并打开新卷。Delete请求删除清空回收站Filer模式更改文件更改文件里面的内容只需要post相同文件名的文件就能实现文件更改并且同步到filermount目录和卷服务器。Psot请求更改文件数据移动文件和目录POST请求 http://ip:8888/path/to/dst_file?mv.from/path/to/src_fileFiler模式append追加文件Filer模式Append文件机制 相当于将一个文件里面的主句追加到另一个文件尾部如果目标文件不存在就自动创建并且同步到filermount目录和卷服务器属性加上opappend。Post请求append文件Filer模式查看目录下的文件列表curl -H Accept: application/json http://ip:8888/test/?prettyy或者利用参数条件查询支持通配符模糊查询curl -H Accept: application/json http://ip:8888/javascript/?prettyylastFileNamejquery-2.1.3.min.jslimit2Filer模式filermount挂载机制Filermount里面的data目录挂载了所有通过filer模式上传的文件开启filermountvolumeServer这三个服务就能实现mount里面的挂载数据与卷服务器里的数据同步。也就是说直接往mount传文件再开启卷服务器也能实现数据同步。任何通过上传下载更改删除的操作都能实现mount的同步更新。不开启mount服务器也能使用filer模式。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门