通过 EFS 在 WordPress 上卸载/重新挂载
昨天我玩了很多,突然感到一种焦虑:“这真的能炫耀吗?”为了验证,我进行了实验。
制作堆栈
通过CloudFormation在EC2上挂载ElasticFileSystem(EFS) – Qiita
AMIMOTO AMI + EFS + ELB + VPC及相关事项将被启动。
尝试放下面具
如果突然将其移出,会产生错误。
$ sudo umount /var/www/vhosts/
umount.nfs4: /var/www/vhosts: device is busy
让我们停止Monit和Nginx。
[ec2-user@ip-10-0-0-201 ~]$ sudo service monit stop
Shutting down monit: [ OK ]
[ec2-user@ip-10-0-0-201 ~]$ sudo service nginx stop
Stopping nginx: [ OK ]
重试
[ec2-user@ip-10-0-0-201 ~]$ sudo umount /var/www/vhosts/
如果成功的话,不会有任何消息特别显示。
运行df -h命令可以看到挂载已经被卸载。
[ec2-user@ip-10-0-0-201 ~]$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/xvda1 9.8G 4.2G 5.6G 43% /
devtmpfs 1.9G 64K 1.9G 1% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/xvdb 15G 39M 15G 1% /media/ephemeral0
挂载点(/var/www/vhosts/)中,WordPress的安装已经消失得很干净了。
[ec2-user@ip-10-0-0-201 ~]$ ll /var/www/vhosts/i-4fe8feda/
合計 4
-rw-r--r-- 1 root root 175 6月 29 18:33 index.html
重新攀爬
“『fs-XXXX』是EFS的文件系统ID。”
[ec2-user@ip-10-0-0-201 ~]$ sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-XXXX.efs.us-east-1.amazonaws.com:/ /var/www/vhosts
确认是否已被人攀登。
[root@ip-10-0-0-201 log]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 9.8G 4.2G 5.6G 43% /
devtmpfs 1.9G 68K 1.9G 1% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/xvdb 15G 39M 15G 1% /media/ephemeral0
us-west-2b.fs-xxxxxx.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /var/www/vhosts
[root@ip-10-0-0-201 log]#
文件也已恢复。
[ec2-user@ip-10-0-0-201 ~]$ ll /var/www/vhosts/i-4fe8feda/
合計 192
-rw-r--r-- 1 nginx nginx 418 6月 29 18:38 index.php
-rw-r--r-- 1 nginx nginx 19935 6月 29 18:38 license.txt
-rw-r--r-- 1 nginx nginx 1176 6月 29 18:37 local-config.php
-rw-r--r-- 1 nginx nginx 774 6月 29 18:38 local-salt.php
-rw-r--r-- 1 nginx nginx 7360 6月 29 18:39 readme.html
-rw-r--r-- 1 nginx nginx 5032 6月 29 18:38 wp-activate.php
drwxr-xr-x 9 nginx nginx 4096 6月 29 18:37 wp-admin
-rw-r--r-- 1 nginx nginx 364 6月 29 18:39 wp-blog-header.php
-rw-r--r-- 1 nginx nginx 1476 6月 29 18:38 wp-comments-post.php
-rw-r--r-- 1 nginx nginx 2853 6月 29 18:39 wp-config-sample.php
-rw-r--r-- 1 nginx nginx 2751 6月 29 18:36 wp-config.php
drwxr-xr-x 7 nginx nginx 4096 6月 29 19:23 wp-content
-rw-r--r-- 1 nginx nginx 3286 6月 29 18:38 wp-cron.php
drwxr-xr-x 16 nginx nginx 4096 6月 29 18:36 wp-includes
-rw-r--r-- 1 nginx nginx 2380 6月 29 18:38 wp-links-opml.php
-rw-r--r-- 1 nginx nginx 3316 6月 29 18:38 wp-load.php
-rw-r--r-- 1 nginx nginx 33837 6月 29 18:38 wp-login.php
-rw-r--r-- 1 nginx nginx 7887 6月 29 18:39 wp-mail.php
-rw-r--r-- 1 nginx nginx 13106 6月 29 18:38 wp-settings.php
-rw-r--r-- 1 nginx nginx 28624 6月 29 18:38 wp-signup.php
-rw-r--r-- 1 nginx nginx 4035 6月 29 18:38 wp-trackback.php
-rw-r--r-- 1 nginx nginx 3061 6月 29 18:38 xmlrpc.php
由于Nginx和monit停止了,目前网站仍未恢复显示。
我们需要确保它们正确启动。
[root@ip-10-0-0-201 log]# service nginx start
Starting nginx: [ OK ]
[root@ip-10-0-0-201 log]# service monit start
Starting monit: Monit start delay set -- pause for 5s
[ OK ]
因为所使用的组合只有一个EC2服务器,所以可能没有使用EFS的特别优势。但是,仅仅确认可以在实际中使用EFS进行挂载和卸载就已经是一种进展了。