现在的位置:首页>免费空间>正文

阿里云ECS Linux下将网站内容从系统盘搬家到数据盘的操作过程

2016年03月12日 ⁄ 共 2824字 暂无评论

部落也不知道自己是在什么时候用上阿里云ECS的,当时是使用的最低的配置,速度也还不错,后来一点一点在慢慢升级了,当然,最开始升级的是带宽,后来CPU干脆也升了一下,最后升级的才是磁盘,原因很简单,当时购买的时候,是有20G的磁盘,一直没有用完.使用一段时间后,随着网站内容的增加,发现现有系统盘已无法满足了,只好重新购买了一块了数据盘,现在需要将网站内容从系统盘搬家到数据盘上了.

最开始一看,以为很难,毕竟没有操作过,后来走了一躺,感觉也就那么回事.

阿里云系统盘和数据盘的IO性能差别

部落在网上找了一段阿里云系统盘和数据盘的IO性能差别的数据,如下:

阿里云的系统盘(20G):Total transferred 901.56Mb (15.026Mb/sec) 961.64 Requests/sec executed

阿里云的数据盘(100G):Total transferred 550Mb (9.1664Mb/sec) 586.65 Requests/sec executed

结论:系统盘的IO比挂载的数据盘要快不少,读写频繁又不太大的数据建议放系统盘,如果您的网站数据不大,那么不建议更换了.

Linux系统下挂载数据盘

如果您之前已经购买过系统盘,并且已经挂载好,请无视这一步.这里部落直接引用阿里云官方的教程:

1.首先我们通过安装putty这一类工具,然后登录到您的服务器上.

在没有分区和格式化数据盘之前,使用 “df –h”命令,是无法看到数据盘的,可以使用“fdisk -l”命令查看。如下图:

alysjpbj1

若您执行fdisk -l命令,发现没有 /dev/xvdb 表明您的云服务无数据盘.

2.接下来,我们需要对购买来的数据盘进行分区操作

执行“fdisk /dev/xvdb”命令,对数据盘进行分区;

根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成.

alysjpbj2

3.查看新的分区

使用“fdisk -l”命令可以看到,新的分区xvdb1已经建立完成了.

alysjpbj3

4.格式化新分区

以ext3为例:使用“mkfs.ext3 /dev/xvdb1”命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同.

alysjpbj4

5.添加分区信息

使用“echo '/dev/xvdb1 /mnt ext3 defaults 0 0' >> /etc/fstab”(不含引号)命令写入新分区信息。
然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。

注:ubuntu12.04不支持barrier,所以正确写法是:echo '/dev/xvdb1 /mnt ext3 barrier=0 0 0' >> /etc/fstab

如果需要把数据盘单独挂载到某个文件夹,比如单独用来存放网页,可以修改以上命令中的/mnt部分.

alysjpbj5

这里部落需要补充一下,阿里云官方没有说明,我们只知道我们添加的数据盘,是加载到了mnt这个文件上.

6.挂载新分区

使用“mount -a”命令挂载新分区,然后用“df -h”命令查看,出现以下信息就说明挂载成功,可以开始使用新的分区了.

alysjpbj6

上面部落说了,默认为数据盘挂载到mnt目录,挂载自定义目录需要先创建目录,先进入根目录.命令如下:

cd /

创建文件夹xiedandan,我这是创建的xiedandan文件夹,你可以改名自己知道就行.命令如下:

mkdir xiedandan

ECS Linux系统盘数据转移操作过程

一般来说,我们可以先查看一下系统盘的使用情况,执行df -h 查询空间使用率接近100%,需要将数据转移至新购买的数据盘.

alysjpbj7

1、购买数据盘,创建好分区后,在系统内挂载数据盘到/mnt/shujupan目录。

2、创建好系统盘快照备份,以便操作失败回滚。

3、出于数据安全考虑,为保证转移顺利进行,停止正在运行的服务程序。参考示例:

#/etc/init.d/nginx stop
#/etc/init.d/httpd stop
#/etc/init.d/mysqld stop
#/etc/init.d/php-fpm stop
#/etc/init.d/vsftpd stop

4、假设当前系统盘/mnt/www目录是需要进行数据转移的目录,通过mv 命令将www目录内的所有文件移动到数据盘(xvdb1)。

#mv /mnt/www/* /mnt/shujupan/

5、修改fstab文件,指定数据盘挂载目录,实现开机自启动。

#vi /etc/fstab 最下面增加以下内容后,保存重启:

/dev/xvdb1 /mnt/www ext4 defaults 0 0

注意:其中 ext4为数据盘的文件系统类型,xvdb1为数据盘分区,请根据实际情况调整。

6、重启后检查系统内的程序服务是否运行正常,测试站点、数据库等是否可以正常连接访问。

如果没有异常,数据迁移成功。此时对于系统和程序,访问的还是/mnt/www目录没有变,但这时该目录是位于数据盘上的,执行df -h 系统盘空间使用率恢复正常。

alysjpbj8

到此,阿里云ECS Linux下将网站内容从系统盘搬家到数据盘的操作过程完成.

LNMP更改默认mysql数据存放到数据盘

如果您的使用的军哥的lnmp安装包,那么我们可以还会需要修改几个地方,

1.更改网站文件目录

如果你使用的是军哥的lnmp安装包,那默认的虚拟主机配置环境在 /usr/local/nginx/conf/vhost/ 目录里,修改:

vi /usr/local/nginx/conf/vhost/域名.conf

可以打开对应的虚拟主机配置,然后修改其中的网站目录。然后执行:

cp -a 老目录 新目录

chown www:www -R 新目录

2.更改MySQL数据存放目录

下面新目录以/storage/mysql/ 为例,然后复制旧目录的数据库到新目录:

cp -R /usr/local/mysql/var/* /storage/mysql/

3.将新目录赋权为mysql用户组:

chown mysql:mysql -R /storage/mysql/

4.再修改配置文件:

vi /etc/my.cnf

查找mysql数据原有目录 /usr/local/mysql/var 修改为:

datadir = /storage/mysql

innodb_data_home_dir = /storage/mysql

innodb_log_group_home_dir = /storage/mysql

5.启动mysql:

/etc/init.d/mysql start

到此完工.

 

 

小结

这里部落必须要补充一下,如果您的网站,数据量不大,那么建议您使用系统盘,毕竟一般20G的系统盘,对付2万篇文章应该是不会有问题,当然,如果是一些论坛类型的,为了长远发展,建议一开始的时候,就直接使用数据盘.

给我留言