将您的 Linux 应用程序迁移到 Amazon 云,第 2 部分: 提高应用程序可靠性
2010-08-25 00:00:00 来源:WEB开发网清单 3. 移动 PostgreSQL 数据到 EBS 卷
# service postgresql stop
# mv /var/lib/pgsql /ebsvol
# mkdir /var/lib/pgsql
# chown postgres:postgres /var/lib/pgsql
# mount /ebsvol/pgsql /var/lib/pgsql -o bind
# service postgresql start
清单 3 中的一系列命令功能如下:
停止 PostgreSQL 守护进程,确保数据一致性。
移动整个目录树到 EBS 存储。
重新创建 PostgreSQL 目录。
重新设置 PostgreSQL 目录的所有权。
使用 mount 的 bind 选项挂载 /ebsvol/pgsql on top of /var/lib/pgsql。
重启数据库。
mount 的 bind 选项将第一个目录克隆到第二个。一个目录中的改变将会在另一个中出现 — 毕竟,它是同一磁盘上的同一个块。使用 bind 与对同一设备进行两次挂载的区别在于,您就可以挂载子目录而无需挂载整个文件系统。
从故障中恢复
如果您的服务器崩溃了,执行以下步骤:
使用您的 AMI 启动一个新实例。
使用 ec2-attach-volume 附加 EBS 卷到实例。
将 EBS 设备挂载在 /ebsvol 上。
执行 清单 3 中的最后 4 个命令。
如果您最近已经打包了您的 AMI,您的数据库系统将是最新的。
应用程序服务器选址
云计算的一个优势是您很容易访问服务器容量。目前,SmallPayroll.ca 环境在同一虚拟实例中同时有数据库和应用程序服务器,这同迁移到 Amazon EC2 之前是一样的。下一步是从数据库服务器中分离应用程序服务器。
扩展性和负载均衡
术语扩展性 通常是与容量联系在一起的。如果说一个应用程序可扩展,就是说应用程序可以增长空间来应对更多用户负载。如果通过添加服务器实现扩展性,则称为横向扩展。如果用一个更大的服务器替换现有服务器来应对负载,则该应用程序是纵向扩展 的。
更多精彩
赞助商链接