您的位置:首页 > 运维架构 > 网站架构

腾讯云,阿里云 把网站的数据放到数据盘上

2016-05-24 14:33 405 查看
阿里云、腾讯云服务器的硬盘是分两块,一个系统盘,一个数据盘,默认数据盘没有被挂载,所以除了系统和环境软件会安装在系统盘里,网站数据等也在系统盘里,数据盘却空置,没法利用其空间与区分系统和数据管理的好处。

这里做下说明,如何让网站数据存储在数据盘?

如果使用常用的LNmp一键安装包安装系统环境,网站根目录默认为: /home/wwwroot

有两个方法
1 . 直接挂载到目录/home/wwwroot
这个直接按阿里云官方的教程操作就可以了,只是需要建立目录 # mkdir /home/wwwroot

然后把 /mnt 替换为 /home/wwwroot 即可



操作完上面这些,再安装LNmp一键包即可。

2 . 软件安装在系统盘,但网站数据放在数据盘
LNmp还是安装在系统盘里,阿里云服务器的数据盘挂载也按原来的操作
只要在添加网站时将默认目录修改成 /mnt 即可

这样的好处有两点:
1.  可以使用到更多的数据盘空间
2. 重装系统或环境不会影响网站数据,当然格式化数据盘也不会影响网站数据。

*另外也可以把数据盘再多分一个区,把其中一个分区挂载到数据库目录,比如/usr/local/mysql,方法同上。

*如果现在网站已经建在系统盘下了,还有办法迁移到数据盘吗?站点在home下,数据盘还可以加载到home目录吗?
当然可以,先将/home目录下的文件移动到其他目录,然后把数据盘挂载到/home,把数据移回即可

    【如果之前安装lnmp的时候,没有安装mysql innodb数据库引擎,怎么办呢?】
1、如果你选择安装的是 mysql-5.5.37,那么只需要修改 /etc/my.cnf 配置文件即可
先看下 centos.sh 安装脚本是如何判断是否安装 innodb 的:

if [ $installinnodb = "y" ]; then

sed -i 's:#innodb:innodb:g' /etc/my.cnf

sed -i 's:/usr/local/mysql/data:/usr/local/mysql/var:g' /etc/my.cnf

else

sed '/skip-external-locking/i\default-storage-engine=MyISAM\nloose-skip-innodb' -i /etc/my.cnf

fi

    根据上面的命令,我们修改  /etc/my.cnf 即可:
a、找到 loose-skip-innodb 并注释掉:

default-storage-engine=MyISAM

#loose-skip-innodb

skip-external-locking

b、搜索 innodb 并取消innodb前面的注释:

# Uncomment the following if you are using InnoDB tables

innodb_data_home_dir = /usr/local/mysql/var

innodb_data_file_path = ibdata1:10M:autoextend

innodb_log_group_home_dir = /usr/local/mysql/var

# You can set .._buffer_pool_size up to 50 - 80 %

# of RAM but beware of setting memory usage too high

innodb_buffer_pool_size = 16M

innodb_additional_mem_pool_size = 2M

# Set .._log_file_size to 25 % of buffer pool size

innodb_log_file_size = 5M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

重启,mysql已经启用 innodb 引擎了:



2、如果你不幸的选择了低版本的mysql 5.1.73并且没有选装 innodb,那么只有重新编译mysql了;当然你也可以升级mysql,在升级的时候,也可以安装innodb,但是一般不建议升级安装。
我们来看下centos.sh的原始编译的脚本:

cd mysql-5.1.73/

if [ $installinnodb = "y" ]; then

./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase

else

./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile

fi

make && make install

需要我们重新编译mysql,注意,重编译会导致原先的数据丢失,请先备份:

cd mysql-5.1.73/

./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase

make && make install

注意,军哥的脚本里,这个参数:--enable-thread-safe-client出现了2次,请手动去掉一个。

另外,centos下的日志文件路径在 /var/log 下:

btmp 或 btmp-20150515 (记录所有失败登录信息)

secure 或 secure-20150515 (包含验证和授权方面信息) 

之类的可能会有几百M甚至几个G,如果系统盘磁盘不足,可以删除这些日志文件。
日志说明:

/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。

/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。

/var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。

/var/log/boot.log — 包含系统启动时的日志。

/var/log/daemon.log — 包含各种系统后台守护进程日志信息。

/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。

/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。

/var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。

/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。

/var/log/user.log — 记录所有等级用户信息的日志。

/var/log/Xorg.x.log — 来自X的日志信息。

/var/log/alternatives.log – 更新替代信息都记录在这个文件中。

/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。

/var/log/cups — 涉及所有打印信息的日志。

/var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。

/var/log/yum.log — 包含使用yum安装的软件包信息。

/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。

/var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。

/var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。

/var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

除了上述Log文件以外, /var/log还基于系统的具体应用包含以下一些子目录:

/var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。

/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。

/var/log/mail/ –  这个子目录包含邮件服务器的额外日志。

/var/log/prelink/ — 包含.so文件被prelink修改的信息。

/var/log/audit/ — 包含被 Linux audit daemon储存的信息。

/var/log/samba/ – 包含由samba存储的信息。

/var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。

/var/log/sssd/ – 用于守护进程安全服务。

除了手动存档和清除这些日志文件以外,还可以使用logrotate在文件达到一定大小后自动删除。可以尝试用vi,tail,grep和less等命令查看这些日志文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  腾讯云 阿里云