zir*_*dec 6 server nfs symbolic-link
我有一个存储量有限的虚拟机,这已经成为一个问题。我的主目录链接到服务器上的 NFS 存储,并且它一直正常运行。但是我现在需要将我的整个机器链接到 NFS 并且我的存储空间一直不足!
我只是想知道链接整个机器是否安全(也就是说,整个:/)链接到 NFS 是否安全?
我想使用以下命令来做到这一点:
/storage/nfs 基本上是我安装的 NFS。
$ mkdir /storage/nfs/myvmroot
$ sudo cp -rp /* /storage/nfs/myvmroot
$ sudo mv /* /old-root
$ sudo ln -s /storage/nfs/myvmroot /
Run Code Online (Sandbox Code Playgroud)
ter*_*don 10
否。这会使您的虚拟机无法启动。NFS 系统在引导过程中的某个时间点加载。在此之前,将无法访问 NFS 上的任何文件。这意味着机器将无法访问启动所需的文件。这些包括(但不限于)内核本身、默认的 shell/bin/sh以及下面的所有内容/bin包含挂载 NFS 共享所需命令的。
所以不,这不是一个好主意。更重要的是,没有必要。中的大多数目录/都不是很大。只需确定占用空间的那个并将其放在那里。您应该能够在没有重大问题的情况下移动以下任一项:
/var/cache/usr/local/usr它本身通常也可以移动,但要确保没有任何重要的东西在/usr/local/bin. 可能不会,但请检查。无论如何,这些可能是占据空间的人。
Gil*_*il' 10
您不能/建立符号链接。这是不可能的。/必须是目录。如果/是符号链接,它会指向某个路径——并且要解析该路径,系统将通过/,这是一个符号链接,因此需要解析......指向自身下方的符号链接将始终导致错误取消引用,但无论如何,您将无法创建/符号链接,因为它已经是一个现有目录。
您可以做的并且将达到您想要的效果是将NFS 文件系统挂载为根文件系统,而不是像通常那样挂载本地文件系统。这是可能的,并且受到 Ubuntu 的支持。Ubuntu 社区 wiki 上有一个教程(它涵盖了完整的无盘安装,如果您/boot在本地保存,则可以跳过有关 TFTP 的部分)。移动现有系统与进行初始安装略有不同,因此不要指望完全按照教程进行操作。
您需要确保initramfs包含必要的驱动程序。initramfs 由命令update-initramfs根据当前系统配置和/etc/initramfs-tools. 您需要将 NFS 设置显式添加到/etc/initramfs-tools/initramfs.conf,至少添加一行BOOT=nfs(我认为可以在启动时指定其他参数,但是BOOT=nfs为了包含 NFS 驱动程序DEVICE=…是必需的,并且可能也需要包含以太网司机)。修改后/etc/initramfs-tools/initramfs.conf,运行update-initramfs.
我建议保留/boot作为本地分区,与 分开/,如果还没有的话。
不要cp -rp /* /storage/nfs/myvmroot用来复制文件,那是行不通的。您需要从副本中排除已安装的文件系统。通过-x选项。此外,使用-a而不是-rp,有些属性-rp不会保留。
cp -ax /* /storage/nfs/myvmroot
Run Code Online (Sandbox Code Playgroud)
或者,如果复制被中断
rsync -axAX / /storage/nfs/myvmroot
Run Code Online (Sandbox Code Playgroud)
另一个可能更简单的选择是将根文件系统保留在本地,并且只移动其中的一部分。即使使用快速服务器和快速网络,您通常会从本地文件系统获得比 NFS 更好的性能和可靠性。
您不能随处剪切:在启动过程中不能过早地需要您远程放置的内容。我认为/usr现在 Ubuntu 没有正式支持 cut at ,但是 Ubuntu 的父发行版 Debian 支持它,所以它有机会工作。另一个很有可能工作的地方是/usr/share。我不推荐/var,如果有任何问题,可能会很麻烦,因为那是保存日志的地方。(如果 NFS 客户端对某些事情不满意,并且它尝试将日志写入/var/log但/var没有响应,那么祝您在诊断故障时好运。)
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |