我是一名研究生,也是一个相对的Linux新手。我的机构有一个内部 Linux 集群,我在上面运行了许多科学模拟。我有一台 Windows 台式计算机,我可以通过 SSH 访问 Linux 集群。
我在 Linux 集群的文件服务器上有大量(约 1 TB)的模拟结果数据。当项目完成时,研究小组可能没有空间来保存模拟结果。但是,我想将文件保存在我自己购买的外部驱动器上(当然要经过小组的许可)。
我的问题是,如果我购买带有 USB 连接的标准 Windows 外部硬盘驱动器,我是否能够将文件从 Linux 集群的文件服务器复制到外部驱动器? (我假设 Linux 集群有一个 USB 端口,但这是我需要验证的。)
看起来许多标准 Windows 外部硬盘驱动器都采用 NTFS 或 FAT32 格式,而我们的 Ubuntu Linux 文件服务器则使用 NFS。以下是亚马逊的一些示例:
您认为上述任何或所有硬盘都能够容易地在 NFS 中重新格式化以便与 Linux 集群一起使用?
另一方面,亚马逊做有一个“Linux平台支持”外部硬盘驱动器的部分,例如:
但是,即使标准 Windows 外部硬盘驱动器很容易重新格式化,问题是我随后可能想要将文件从外部硬盘驱动器复制到 Windows 计算机(即 NTFS)。这部分问题可能需要一个单独的问题或关于超级用户的问题,但是是否可以将 NFS 文件从外部硬盘驱动器复制到 Windows NTFS 计算机?谢谢你的时间。
答案1
我的问题是,如果我购买带有 USB 连接的标准 Windows 外部硬盘驱动器,我是否能够将文件从 Linux 集群的文件服务器复制到外部驱动器?
是的,这没有技术问题,但是:
硬件不是“标准”视窗带有 USB 连接的硬盘驱动器”。请从这句话中删除 Windows 部分。无论有没有 Windows,外部 USB 硬盘都可以像操作系统一样正常工作。
我假设 Linux 集群有一个 USB 端口,但这是我需要验证的。
对于大量数据(1TB 已经很多),本地连接驱动器可能会快很多。然而,使用 USB2 时,速度仍然限制在 35 MB/秒左右。这意味着通过 USB2 复制 1TB 数据大约需要 8-9 小时。*
如果驱动器是本地安装的(通过普通 SATA)、集群和驱动器都有 eSATA、如果两者都有 USB3 或两者都有火线,则可以大大加快速度。
或者,您可以将驱动器连接到您自己的桌面并复制文件。在这种情况下,网络可能会受到速度限制。您还可能面临愤怒的管理员询问您为何让其他用户的网络速度如此缓慢的风险。 :-)
看起来许多标准 Windows 外部硬盘驱动器都采用 NTFS 或 FAT32 格式,而我们的 Ubuntu Linux 文件服务器则使用 NFS。
嗯,不。
硬盘不关心使用哪个文件系统。它可能已预先格式化为 NTFS(对于大多数购买它们的人来说这是一个明智的选择),但没有什么可以阻止您更改文件系统和重新格式化。这应该只需要几分钟。
此外,您的文件服务器不在其硬盘上使用 NFS。它可能使用 ext2、ext4 或 ZFS。这两件事你都不需要担心。只要您能读取数据,就可以以任何格式写入数据。
(打个比方:你把写在笔记本上的文字抄下来,不用担心原来笔记本的形状和颜色,只要你能看懂,并且自己有一个足够大的笔记本,你就可以把内容抄下来一个笔记本到另一个)。
*:根据此估计 8-9 小时:
35 MiB/秒
每 3 秒 100 MiB。
每 30 秒 1000 MiB,相当于每 30 秒 1GiB。
每 30 秒 1GiB
每 30000 秒 1000GiB
每 30000 秒 1TiB。 30000/3600=8.3(每小时3600秒)
答案2
A 写了一篇详细的博客文章,介绍如何做到这一点。
http://blog.championswimmer.in/2014/ saving-linux-data-on-your-fat32-external-hdd-using-loop-mount/
基本上,你无法将 Linux 数据保存到 FAT32,否则就会失去权限并搞砸。您可以做的是在其中创建一个 Ext4 循环设备并存储在那里。
创建一个64GB的文件
cd /media/myUserName/HugeExternalDrive/my_favourite_folder/
dd if=/dev/zero of=./my.disk bs=33554432 count=2048
安装和格式化
sudo losetup /dev/loop0 ./my.disk
sudo mkfs.ext4 /dev/loop0
现在挂载到合适的目录
mkdir /home/myUserName/mount_point
sudo mount /dev/loop0 /home/myUserName/mount_point
sudo chown -R myUserName:myUserName /home/myUserName/mount_point
现在您可以使用创建的磁盘映像了
链接的博客文章更详细地描述了如何做到这一点。