Linux AWS EC2:移动/var至EBS

Linux AWS EC2:移动/var至EBS,linux,amazon-web-services,amazon-ec2,centos,plesk,Linux,Amazon Web Services,Amazon Ec2,Centos,Plesk,在过去的5个小时里,我的头撞在墙上 我有一个全新的Centos 6安装和Plesk。机器启动后,我将尝试将/var文件夹移动到连接的EBS(/dev/xvdj): 我知道在移动/var之前,我应该将实例引导到运行级别1(单用户),以防止从/var写入和读取任何内容。然而,这将我与我通过艰苦的方式学到的例子隔绝开来 我试图手动停止mysql、Web服务器和邮件服务器,但在我移动/var后,我无法恢复这些服务,当我尝试启动时,它们只是声明[失败]。它们也不会在/var/log中写入任何内容。第一眼看

在过去的5个小时里,我的头撞在墙上

我有一个全新的Centos 6安装和Plesk。机器启动后,我将尝试将
/var
文件夹移动到连接的EBS(
/dev/xvdj
):

我知道在移动
/var
之前,我应该将实例引导到运行级别1(单用户),以防止从
/var
写入和读取任何内容。然而,这将我与我通过艰苦的方式学到的例子隔绝开来

我试图手动停止mysql、Web服务器和邮件服务器,但在我移动
/var
后,我无法恢复这些服务,当我尝试启动时,它们只是声明
[失败]
。它们也不会在
/var/log
中写入任何内容。第一眼看到
/var
中目录的权限,看起来不错,符号链接也存在


有什么想法吗?

最好的方法可能是离线。从第一个实例分离EBS磁盘,连接到另一个实例,装载它们并进行更改,包括根EBS的fstab。然后,将其分离并重新连接到原始实例上,然后启动。我会这样做。

这是所有公司客户的一个非常常见的要求,使用单独的分区确实有助于在任何给定时间点增加卷大小

大多数人在进行分区后都会遇到SSH连接问题,这时他们会使用更通用的方法进行分区。

我专门为此写了一篇博客,详细介绍了在AWS EBS上执行此类操作的步骤。

另外,如果您选择使用LVM进行分区,那么这里还有一篇文章,详细介绍了一步一步的过程和屏幕截图。


希望这有帮助!:)

您应该发现,除非停止并启动syslog服务,否则syslog仍将转到/old.var/log。重命名目录不会改变目录下已经打开的文件的任何内容——它们仍将在新路径上打开,直到被打开它们的进程关闭。另外,在复制文件之前,您是否停止了MySQL等?好的,谢谢。这解释了丢失的mysql日志-将在var.old中查看。是的,我确实在移动之前停止了MySQL和其他服务。你知道我怎样才能在搬家前停止一切吗?你提到了syslog,可能还有其他的。这是个好主意,下次我会试试这个。但我最终发现了这个问题——Selinux被启用,并阻止了所有类型的东西在/var以外的其他位置运行!在尝试让selinux工作后,我认为这将是一项不平凡的工作。所以我。我想这对安全性不是很好,但至少我的设置现在可以正常工作了。此外,我没有将整个
/var
链接到EBS.pre-systemd上的各个目录,而是将vhosts、mysql、mail和psa转储链接到EBS.pre-systemd上,在停止几乎所有操作后,我会以单用户的方式进行,但systemd使这变得困难。以上是最好的建议。
#copy original /var to /dev/xvdj
mkdir /mnt/new
mount /dev/xvdj /mnt/new
cd /var
cp -Rax * /mnt/new
cd /
mv var var.old
#mount EBS as new /var
umount /dev/xvdj
mkdir /var
mount /dev/xvdj /var