报告“设备上没有剩余空间”;尝试通过 SCP 通过 EC2 实例将文件传输到 EFS

报告“设备上没有剩余空间”;尝试通过 SCP 通过 EC2 实例将文件传输到 EFS

我的设置基于这篇文章:https://parall.ax/blog/view/3212/how-to-run-scalable-wordpress-on-aws-amazon-web-services-tutorial

即通过 Elastic Beanstalk 托管 Wordpress,使用单独的 RDS 实例并通过 Elastic Filesystem 处理文件服务/上传。我的efs.config是这样的:

packages:
  yum:
    nfs-utils: []
    jq: []
files:
  "/tmp/mount-efs.sh" :
    mode: "000755"
    content: |
      #!/usr/bin/env bash
      mkdir -p /mnt/efs
      EFS_NAME=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_NAME')
      mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $EFS_NAME:/ /mnt/efs || true
      mkdir -p /mnt/efs/uploads
      chown webapp:webapp /mnt/efs/uploads
commands:
  01_mount:
    command: "/tmp/mount-efs.sh"
container_commands:
  01-rm-wp-content-uploads:
    command: rm -rf /var/app/ondeck/wp-content/uploads
  02-symlink-uploads:
    command: ln -snf /mnt/efs/uploads /var/app/ondeck/wp-content/uploads

我尝试使用 scp 通过一个 EC2 实例将大约 400G 的文件传输到 EFS。具体来说,我将文件传输到“/mnt/efs/uploads”,这应该是已安装的 EFS 驱动器。但是,在传输了大约 7G 后,我不可避免地被告知“设备上没有剩余空间”。

此外:

[ec2-user@ip-XXX-31-29-XXX uploads]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G   60K  1.9G   1% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/xvda1      7.8G  7.7G     0 100% /

我为什么会收到此消息?似乎我正在填满 EC2 空间,但我应该将文件放在安装在 EC2 上的 EFS 上... 想法?

答案1

尝试执行/tmp/mount-efs.sh通过 SSH 连接到您的实例时手动执行脚本并检查它是否返回任何错误。最有可能的问题出在这行中,它无法将 /mnt/efs 目录挂载到 EFS:

      mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $EFS_NAME:/ /mnt/efs || true

相关内容