我正在运行以下命令:
[root@somehost ~]# ec2-consistent-snapshot --aws-credentials-file '/some/dir/file' --mysql --mysql-socket '/var/run/mysqld/mysql.sock' --mysql-username 'backup' --mysql-password 'password' --freeze-filesystem '/dev/xvda1' vol-xxxxxx
它返回此错误:
xfs_freeze: cannot freeze filesystem at /dev/xvda1: Operation not supported
ec2-consistent-snapshot: ERROR: xfs_freeze -f /dev/xvda1: failed(256)
snap-eeb66393
xfs_freeze: cannot unfreeze filesystem mounted at /dev/xvda1: Invalid argument
ec2-consistent-snapshot: ERROR: xfs_freeze -u /dev/xvda1: failed(256)
这是在具有 ext4 Linux 文件系统的 Debian Squeeze 上运行的。
有人能向我解释这个错误吗,或者它的原因是什么?在谷歌搜索时,我发现需要使用 sudo 执行它的信息,但我以 root 身份执行整个操作。我还发现了一些关于尝试在使用 yum 升级 CentOS 后运行它的帖子,但情况似乎不同。很难找到确切提到这种情况的东西。xfs_freeze 可用于文件系统。文件系统虽然是 ext4,但是否可能不支持冻结?如果我在这篇文章中错过了一些 StackExchange 礼仪,我很抱歉——这是我在这里的第一次尝试!
答案1
这是一个非常奇怪的情况——从 2.6.29 开始,ext3/4 就支持冻结功能,因此假设你运行的是普通的 Squeeze 内核(2.6.32),操作应该xfs_freeze
得到支持(甚至使用与 XFS 文件系统相同的 ioctls )。
我会尝试运行xfs_freeze
,strace
以确保ioctl
返回“操作不受支持”的调用。
另外,如果xvda1
是你的根文件系统,那么非常谨慎冻结它——很容易陷入无法运行解冻操作的情况,因为打开的磁盘xfs_freeze
已冻结(这会停止读取和写入),因此您无法读取xfs_freeze
以执行它来解冻文件系统……然后是重新启动时间,没有办法绕过它。将您的重要数据放在单独的 EBS 卷上(这只是 EBS 支持的实例不像人们想象的那样成功的另一个原因)。