标签: amazon-efs

弹性文件系统 (EFS) 在 AWS 之外挂载

我有一台位于 AWS 之外的服务器。我希望能够将 EFS 卷挂载到它,但我不确定这是否可行。

也许如果您创建一个 VPC,并通过 VPN 创建隧道?

有谁知道这是否可能?

amazon-web-services amazon-vpc amazon-efs

27
推荐指数
1
解决办法
2万
查看次数

我想把 WordPress —— 全部 —— 放在 EFS 上。我是不是该?

我有一个 WordPress 网站,截至目前,我完全在Amazon Lightsail实例上运行。它得到了正确的备份;可用性还可以;安全性好;这是一个易于维护的简单设置。没关系。

我想通过将站点移至Amazon Elastic Beanstalk并对站点的后端进行一些其他重大更改(使站点数据库独立于 PHP 服务器、移至 nginx 等)来提高可用性和加载时间。这有很多好处,其中最主要的原因是:EBS 只是比 Lightsail 更强大的服务器设置。

亚马逊提供的教程创建魔豆上一个WordPress站点只建议安装/wp-content/uploads/上的亚马逊弹性文件系统,默认的配置脚本这样做的客户。这样做的缺点是核心 WordPress 文件不会在 EC2 实例之间共享;相反,它们会在每个实例上复制,因此在您的站点上运行 WordPress 更新过程意味着某些实例实际上并未更新,从而产生不良行为。

本教程建议通过使用 WordPress 的(测试版)导出工具导出所有网站内容并在运行的新 Beanstalk 环境中使用(测试版)导入工具重新导入它的可怕过程来更新 WordPress(和插件)。更新了 WordPress。

我并不完全反对自动化这个过程,以便更新 WordPress 对我来说更容易,但我重视保持最新的更新,所以我想为此进行优化,我怀疑这对我(或任何客户)来说是最好的解决方案是在更新系统或插件的过程中使用 WordPress 的 beta 导入导出工具。

例如,有时这些更新是 WordPress 为其提供自动修补系统的安全更新,这对于最大限度地提高站点安全性非常理想。但是,如果由于我已经概述的更新挑战而未在 EC2 实例之间共享核心 WordPress 文件,则自动修补将无法按预期工作。

综上所述:

如果我将所有 WordPress 文件(而不仅仅是/wp-content/uploads/目录)放在共享 EFS 存储上,我可能会遇到哪些架构或系统问题?

当然,我会进行自己的测试以了解事情的进展情况,但我想知道要注意什么(如果有的话),以及在尝试这样做时应该在哪里设定我的期望。

wordpress amazon-web-services elastic-beanstalk amazon-efs

7
推荐指数
1
解决办法
2262
查看次数

如何在 ECS 任务中将 Amazon EFS 挂载为数据卷?

启动配置上的用户数据:

#!/bin/bash
echo ECS_CLUSTER=prodcluster >> /etc/ecs/ecs.config

sudo yum install -y nfs-utils 
sudo mkdir /home/ec2-user/web_file_uploads 
sudo chmod 777 /home/ec2-user/web_file_uploads 

sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-abcdef.efs.ap-southeast-2.amazonaws.com:/ /home/ec2-user/web_file_uploads 
Run Code Online (Sandbox Code Playgroud)

任务定义:

{
  "networkMode": "bridge",
  "containerDefinitions": [
    {
      "portMappings": [
        ...
      ],
      "essential": true,
      "mountPoints": [
        {
          "containerPath": "/src/temp_uploads/",
          "sourceVolume": "web_file_uploads",
          "readOnly": null
        }
      ],
      "name": "webapp",
      "readonlyRootFilesystem": null,
      "image": "911911911.dkr.ecr.ap-southeast-2.amazonaws.com/webapp:release6",
      "memoryReservation": 150
    }
  ],
  "volumes": [
    {
      "host": {
        "sourcePath": "/home/ec2-user/web_file_uploads"
      },
      "name": "web_file_uploads"
    }
  ],
  "family": "webapp-task"
}
Run Code Online (Sandbox Code Playgroud)

注意:我已将所需的端口添加到安全组。src/temp_uploads 文件夹必须包含在使用此任务定义启动的所有其他容器实例中。

问题:如果我使用 …

amazon-web-services docker amazon-ecs amazon-efs

5
推荐指数
1
解决办法
4469
查看次数

Amazon EFS 尝试列出其中的文件时挂起

在 Amazon EFS 挂载点内执行 ls 时,它会挂起。

AWS 上的 EFS 故障排除部分有关 AWS EFS 故障排除的

提到以下内容:

安装没有响应

Amazon EFS 装载似乎没有响应。例如,像 lshang 这样的命令。

采取的行动

如果另一个应用程序正在向文件系统写入大量数据,则可能会发生此错误。在操作完成之前,对正在写入的文件的访问可能会被阻止。通常,任何尝试访问正在写入的文件的命令或应用程序都可能会挂起。例如,ls 命令在到达正在写入的文件时可能会挂起。这是因为某些 Linux 发行版给 ls 命令起了别名,以便除了列出目录内容之外还可以检索文件属性。

要解决此问题,请验证另一个应用程序是否正在将文件写入 Amazon EFS 挂载,并且它处于不间断睡眠 (D) 状态,如下例所示:

$ ps 辅助| grep large_io.py

根 33253 0.5 0.0 126652 5020 点/3 D+ 18:22 0:00 python large_io.py /efs/large_file

验证情况确实如此后,您可以通过等待其他写入操作完成或实施解决方法来解决该问题。在 ls 的示例中,您可以直接使用 /bin/ls 命令,而不是别名,这将允许命令继续执行,而不会挂在正在写入的文件上。一般来说,如果写入数据的应用程序可以强制定期刷新数据(也许通过使用 fsync(2)),这可能有助于提高文件系统对其他应用程序的响应能力。但是,这种改进可能会以牺牲应用程序写入数据时的性能为代价。

所以我验证了一下是否有东西写入其中,但唯一出现的是

根 43556 0.0 0.0 124356 756 点/6 D+ 19:15 0:00 ls --color=auto /efs/

根 43558 0.0 0.0 112664 972 点/3 S+ …

nfs amazon-web-services amazon-efs

5
推荐指数
1
解决办法
6265
查看次数

Inotify 不适用于 EFS(远程文件系统)

我尝试使用 inotify 通知来检查文件系统事件,但它不起作用。没有文件系统通风通知程序工作。

是否有适用于远程文件系统(如 EFS、NFS、GFS 等)的 inotify 实用程序?

inotify amazon-efs

4
推荐指数
1
解决办法
1930
查看次数

有什么方法可以加速 Windows 中映射的 EFS 共享?

我们刚刚获得了一个 AWS 账户,我正在测试 EFS。我创建了一个 EFS,将其安装在 Amazon Linux 实例上,并将其设置为在 samba 中共享。然后我能够将共享映射为 Windows 7 和 Windows Server 2012 中的驱动器,但与它相关的所有内容都非常慢(查看文件、创建文件、查看共享属性 - 一切)。我认为这是由于装载为 8 EXA字节。

有没有办法在实例或 samba 中安装共享来调整共享大小或将其分成更小的部分?

有没有办法直接调整efs的大小?我们永远不会使用 8 艾字节!

有没有办法判断除了大小之外是否还有其他原因导致它变慢?

我们真的需要能够将其映射为 Windows 中的驱动器。

windows mappeddrive samba amazon-web-services amazon-efs

2
推荐指数
1
解决办法
2516
查看次数