[机器迁移]如何通过网络快速传输海量(小)文件

最近公司组织了开发机迁移的活动,需要将个人用的开发机,从一个平台迁移到另外一个上面去。

由于开发机使用了一阵子,导致了机器的磁盘上积攒了大量的文件,其中,小文件占了大多数,一般都是程序,临时文件,日志文件,还有一些 virtualenv 里面的文件和库。

我们一般能够使用的,在两台服务器之间传送文件的服务,不外乎如下几类:

  • HTTP Server + Wget
  • FTP Server + Wget
  • scp
  • rsync

所有这些选项,在传输速度上都是可以满足需求的,毕竟是公司内网; 可是它们在处理众多小文件的时候又遇到了瓶颈,光是扫描磁盘上的文件列表,都会花去很长的时间。所以解决这个问题,我们分成两步:

  1. 处理海量小文件
  2. 快速传输

对于问题 1, 我们使用 tar 来合并(但不压缩) 文件,可以做到在传输文件的时候屏蔽文件数量多带来的困扰; 问题 2 ,在网络环境比较好,同时不需要加密传输的情况下,可以使用  nc 命令来完成。

NC (Net Cat)

nc - arbitrary TCP and UDP connections and listens

nc 是一个专门用来完成 点对点的 TCP/UDP 传输的工具,它可以通过 -l 参数来完成监听一个端口,将发送到端口上的数据读入; 同时可以指定 一个 IP+端口,将数据发送到指定的地址去。

结合我们提到的需求,我们需要将 home 目录,从机器 A 传输到机器 B 上面去,可以才去如下步骤:

机器 B : 监听本机端口 X,并且将数据解包之后写入磁盘

cd ~

nc -l -p X | tar xv

机器 A :打包磁盘上的工具,然后发送到机器 B 的端口 X 上

cd ~

tar cv . | nc IP-B X

经过我们的测试,使用 nc 传输文件,速率大概是使用 scp 的大概 4 倍左右; 当然,具体的表现会根据你机器、网络配置的不同有所波动。

时间: 2024-08-01 09:36:15

[机器迁移]如何通过网络快速传输海量(小)文件的相关文章

老男孩教育每日一题-2017-04-18:命令风暴:如何快速删除Linux中海量小文件?

老男孩教育每日一题-2017-04-18:命令风暴:如何快速删除Linux中海量小文件? 今天是老男孩教育每日一题陪伴大家的第30天. 对于题目和答案的任何疑问,请在博客评论区留言. 往期题目索引 http://lidao.blog.51cto.com/3388056/1914205

海量小文件存储最优解决方案,杉岩数据MOS完美解决

面对千亿量级的小文件,存储系统压力山大 所谓小文件,指的是存储占用空间相对较小的文件,一般来说低于64MB的文件就可以被认定为小文件,而大量的小文件大小则在几KB到几十KB之间.在云计算.大数据业务中,文本.图片.音乐等是典型的小文件应用场景. 随着数字化创新的加速,组织内部的数据呈现出指数级增长的趋势,特别是小文件更是随着业务增长到一个巨大的量级.与大文件的存储不同的是,大量磁盘在小文件存储场景中的性能极低,单块企业级SATA磁盘如果全部存储4KB左右的小文件,带宽只有520KB/s,远远小于

LOSF 海量小文件问题综述

1.LOSF问题概述 在互联网(尤其是移动互联网).物联网.云计算.大数据等高速发展的大背景下,数据呈现爆炸式地增长.根据IDC的预测,到2020年产生的数据量 将达到40ZB,而之前2011年6月的预测是35ZB.然而,社会化网络.移动通信.网络视频音频.电子商务.传感器网络.科学实验等各种应用产生的数 据,不仅存储容量巨大,而且还具有数据类型繁多.数据大小变化大.流动快等显著特点,往往能够产生千万级.亿级甚至十亿.百亿级的海量小文件,而且更多地 是海量大小文件混合存储.由于在元数据管理.访问

基于mogileFS搭建分布式文件系统 适用于海量小文件的存储

一.分布式文件系统 1.简介 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.分布式文件系统的设计基于客户机/服务器模式.一个典型的网络可能包括多个供多用户访问的服务器.另外,对等特性允许一些系统扮演客户机和服务器的双重角色.例如,用户可以"发表"一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样. 当下我们处在一个互联网飞速发展的信息社会,在海量并

基于mogileFS搭建分布式文件系统--海量小文件的存储利器

一.分布式文件系统    1.简介 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.分布式文件系统的设计基于客户机/服务器模式.一个典型的网络可能包括多个供多用户访问的服务器.另外,对等特性允许一些系统扮演客户机和服务器的双重角色.例如,用户可以"发表"一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样. 当下我们处在一个互联网飞速发展的信息社会,在

nginx反代mogilefs实现海量小文件存储

一.简介 1.介绍 MogileFS 是一个开源的分布式文件系统,用于组建分布式文件集群,由 LiveJournal 旗下 Danga Interactive 公司开发,Danga 团队开发了包括 Memcached.MogileFS.Perlbal 等不错的开源项目:(注:Perlbal 是一个强大的 Perl 写的反向代理服务器) 2.MogileFS的特性 (1)工作在应用层提供服务 (2)无单点(至少存在两份副本在不同的节点上) (3)自动文件复制 mogilefs将多个文件组织成一个单

海量小文件存储与Ceph实践

海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题,众多博文(如[1])对此问题进行了阐述与分析,许多互联网公司也针对自己的具体场景研发了自己的存储方案(如taobao开源的TFS,facebook自主研发的Haystack),还有一些公司在现有开源项目(如hbase,fastdfs,mfs等)基础上做针对性改造优化以满足业务存储需求: 一. 通过对若干分布式存储系统的调研.测试与使用,与其它分布式系统相比,海量小文件存储更侧重于解决两个问题: 1.

海量小文件的管理

在单个目录存放超过上百万的文件时,对大部分的OS都是一个挑战,目录的浏览就是一个非常难以忍受的事情.所以针对海量小文件的应用场景,能够使用nosql数据库时,尽量使用如redis之类的nosql数据库. 在非使用文件系统来存储管理海量小文件的情况下,尽量使用以下原则来进行管理 尽可能使用目录分批存储,避免单目录文件数量过万 文件系统最好使用XFS,XFS的inode数量是ext4的10倍以上 如果不小心遇到了单目录下文件数量过万甚至百万的情况,下面是一些处理建议 ##目录复制或者移动 将单目录为

Linux 快速删除大量小文件方法

进行以下两步操作即可: 1.第一步:创建空的文件夹: mkdir  /tmp/blank 2.第二步:执行以下命令:rsync --delete-before -d /tmp/blank/ /home/stormnode/store/html/new/     当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间.在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理.rsync实际上用的是替换原理,处理数十万个文件也是