Articles of 存储

如何同步文件移动到存储?

我正在Linux环境中使用C / C ++系统,使用stdio.h中提供的rename()函数来移动文件。 移动之后,我需要function将其同步到底层存储,以使更改永久。 如果我有一个文件描述符,我将能够使用fsync()或fdatasync()。 有没有一个这样做的优雅方式? 或者我必须做这样的事情: rename(old_path, new_path); int fd = open(new_path, O_APPEND | O_WRONLY); fdatasync(fd); close(fd); 那会工作吗?

试图增加USB寿命

我们在一个USB驱动器缓冲,并在X分钟后,这将发送到我们的服务器。 因为这涉及到很多的写入和删除周期,USB很快就会死掉(1.5到6个月之间) 我知道这不是一个理想的情况,但由于很多原因,我需要处理一段时间,作为备份解决scheme,USB将保持(因为有互联网问题,它仍然可以缓冲在本地服务器上)。 但是,我正在试图寻找一种方法来增加USB的使用寿命,即使它只是一个小的改进。 我一直在阅读有限的写入/删除周期,我想知道是否可以通过修改文件而不是创build和删除文件来保存USB的生命周期。 目前的文件大小约为524 B …这是不是很多,而块的大小是16.384 B.正如我从收集的所有信息了解,这个空间将默认保留,所以我应该能够再写30次以上在这个块之前会使用另一个块,对吗? 所以我的计划是为每个需要缓冲的设备分配一个专用文件,并通过向文件添加内容而不是创build新文件来让文件增长和缩小。 而不是一遍又一遍的删除文件,但只是清空文件的内容。 所以真正的问题是:将修改文件保存(可能)为USB的任何生命周期,而不是创build和删除文件不断或根本没有关系?

好的分布式通用文件系统在我的情况?

我一直在研究使用分布式文件系统和我的专用服务器的想法,而不是使用Amazon S3,结果不是什么大问题! 我的项目有以下特点/要求: 用户文件存储在专用服务器中 。 每个文件存储在两个独立的机器中,位于不同的数据中心(相距150-200英里) 我正在使用Amazon RDS托pipe关联的mysql数据库(*)。 它相当紧凑(只保存ID /文件元数据) 文件/数据大约是50TB。 当然,数据确实会发生变化,并且肯定会随着时间而增长 我的问题是 :是否有一个好的通用分布式并行容错文件系统 ,具有以下特点: 稳定&合理快速(上传/下载) 相当容易安装和维护 处理数据存储,以便在需要的时候只需要关心删除/添加新的服务器(例如,通过编辑一个简单的configuration或者类似的东西来添加新的服务器到文件系统的服务器池) 我已经读过OpenStack,GlusterFS,MogileFS,XtreemFS等等,但是我越读越多,我感到困惑! (*)是的,我意识到矛盾。 在成本方面,在RDS上托pipe数据库确实有意义。 但是,与使用专用服务器(假设它足够好)相比,在亚马逊上存储(高达)50TB的用户文件太昂贵了。 PS。 我的应用程序还没有生效,所以如果有人有一个适合我的情况的好主意,我可以提出build议。 编辑我没有试图做一个S3克隆,我只需要使用现有的托pipe基础​​设施来构build小规模云解决scheme,我的问题是要find正确的分布式文件系统来处理/自动执行此操作。

最有效的压缩非常大的数据集

目前,我正在远程HPC(高性能计算机)上生成一个非常大的数据集。 目前我们正在谈论3TB,一旦完成就可能达到10TB 。 450 000个文件中的每一个文件的范围从几KB到大约100 MB,并且包含没有重复/可预测模式的整数行。 而且它们被分成150个文件夹(我使用path根据input参数对它们进行分类)。 现在可以很好了,但是我的研究小组在技术上只限于远程服务器上的1TB磁盘空间,尽pipepipe理员愿意闭上眼睛,直到情况得到解决。 你会推荐什么来压缩这样的数据集? 限制是任务在这台计算机上一次不能运行超过48小时。 只要48小时就够了,那么长久而有效的压缩方法是可能的……我真的没有别的select,既不是我,也不是我的团队在其他机器上拥有足够的磁盘空间。 编辑 :只是为了澄清,这是一个远程计算机上运行的一些变种的Linux。 所有标准压缩协议都可用。 我没有超级用户权限。 编辑2:根据Sergio的要求,这里是一个示例输出(文件的前10行) 27 42 46 63 95 110 205 227 230 288 330 345 364 367 373 390 448 471 472 482 509 514 531 533 553 617 636 648 667 682 703 704 735 740 762 775 803 813 882 […]

挂载点下隐藏文件夹的大小

我正在猜测在Linux系统上使用的磁盘。 问题是,像'du -kxa / | sort -g'这样的命令,我看到使用的空间比文件系统报告(19Gb分区的8Gb)要less。 我怀疑有几个挂载点下有隐藏的文件和文件夹。 我不能卸载磁盘,因为它是一台生产机器,不能轻易停止。 问题是: 在Linux上我怎么能得到隐藏在一个安装点下的文件夹和文件? 有什么办法来衡量这个空间吗? Linux版本:Redhat企业版Linux服务器5.3。

模拟磁盘I / O

我们正在评估虚拟化环境(Xen)的存储。 存储是一个主动 – 主动集群,我需要testing一些东西,如裂脑情景等 我正在寻找一个模拟大量小磁盘I / O的工具,就像虚拟机可以读取/写入其映像文件一样。 我不需要性能testing工具,但更像数据完整性。 周围有什么?

当我们看到kb或mb时,如何确定大小是基于1000还是1024

在Linux中有很多程序会显示一个文件的大小,其中一些显示为块,一些显示为字节。 但是,当涉及到一些人类可读的forms,如ls -sh,lvs,dd bs = size等等,当我们看到kb,KB,mB,MB,K时,我们如何判断它是1024或1000的倍数,G等,有些像lvs这样的大写字母,有些像dd这样的不同的字符,但是,这些东西有一个通用的规则,因为目前我找不到。 谢谢。

如何以编程方式获取有关在Linux中的存储驱动器的信息? (C#MONO)

我需要以编程方式获得所有存储驱动器在Linux系统中可用以下字段: path 文件系统(FAT32,NTFS等) 包含物理磁盘 它需要支持所有常见的存储types:硬盘,Disk-On-Keys,CdRom,Dvd等 如何从C#做到这一点从MONO运行良好?

在Linux中检测USB海量存储popup/卸载

我在Linux中使用g_file_storage小工具将分区导出为可移动USB大容量存储设备,以托pipePC(Windows,Linux,MAC)。 所有这些主机操作系统(可以)自动安装可移动磁盘,并访问它没有问题,我正在寻找一种方法来检测主机popup/卸载磁盘。 到目前为止我发现的唯一方法仅限于Windows XP。 当用户select“安全删除硬件”时,XP会将USB设备挂起,在远端检测到挂起模式。 出于某种原因,这在Vista中不起作用。

TPM替代安全地存储在系统内的注册密钥

我需要部署一个包含非常敏感数据的服务器。 更确切地说,这个(linux)服务器将被部署在一个装满天线的天线上,我甚至需要防止数据泄露,即使是不可信的面包车运营商也会直接访问硬盘。 实际的(以前的)configuration是基于一个encryption的FS,并且在服务器驻留在某个服务器机房之前工作正常,即使这会迫使某个可信任的用户在重新启动时input密钥。 但是这种解决scheme并不适用于这种新的情况,即服务器经常会被重新启动,并且不会被授权访问数据的人跟随。 我们的一些新服务器都配备了TPM模块 ,所以问题就解决了,但是大部分提供的服务器都没有包含这个安全function。 我怎样才能存储这些敏感的数据encryption,而不需要用户干预在开机时刻的描述,而不需要保存硬盘上的密码? 我们正在考虑一些基于混淆代码机器检查的密钥生成器,就像一些许可证validation软件一样,但是我不知道从哪里开始。