部署社交網站- MYSQL主從 與 MFS 檔案系統

來源:互聯網
上載者:User

標籤:value   gen   mfsmount   mysql命令   keep   兩台   檔案目錄   _id   方案   

案例概述

公司的社交網站採用PHP語言開發,為了管理PHP程式員開發的代碼,上級領導要求搭建SVN伺服器進資料列版本設定。社交網站的第一個版本部署在LNMP平台之上,前端為 Nginx伺服器,通過 fastcgi協議訪問後端的PHP伺服器。為了保證資料安全,
要求搭建 MYSQL資料庫主從叢集。

社交網站項目包含使用者的相簿功能,允許使用者上傳照片,上傳照片需要使用共用
儲存來存放。針對共用儲存可用的開源方案有很多,如MFS、 FastDFS等。公
使用MFSDistributed File System來實現,並將MFS掛載在PHP伺服器的相關目錄司決定

案例實施

根據公司的需求,實施過程大致分為以下步驟

部署SVN伺服器,為PHP程式員建立repo目錄的訪問賬戶,通知程式員可
以匯入代碼

部署 MYSQL主從伺服器,根據PHP程式員的要求建立資料庫與表

部署 Nginx伺服器

使用keepalived對Nginx伺服器做熱備

部署PHP伺服器

部署MFS,將MFS檔案系統掛載在前端PHP伺服器的相關目錄下

通知上線部署人員發行就緒上線。

保證資料庫服務、PHP服務、 Nginx服務依次啟動,並通知測試人員開始測試,
網站維護人員檢查 Nginx、PHP與資料庫伺服器是否正常工作。

本篇將部署 MYSQL主從服務 與 MFS檔案系統MYSQL 主從服務 部署

主伺服器 (IP 192.168.100.105)
從伺服器 (IP 192.168.100.106)

mysql 5.7 安裝
yum install ncurses ncurses-devel bison cmake -y   ##安裝依賴包useradd -s /sbin/nologin  mysqltar zxvf mysql-5.7.17.tar.gz -C tar zxvf boost_1_59_0.tar.gz -C /usr/local/cd /usr/local/mv boost_1_59_0 boostcd mysql-5.7.17/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ## 指定安裝目錄  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DSYSCONFDIR=/etc    ##指定初始化參數檔案目錄-DSYSTEMD_PID_DIR=/usr/local/mysql -DDEFAULT_CHARSET=utf8    ##指定預設字元集-DDEFAULT_COLLATION=utf8_general_ci    #預設使用的字元集校對規則-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=/usr/local/boost   ##指定Boost庫的位置,5.7版本必須添加-DWITH_SYSTEMD=1!!注意:如果在CMAKE的過程中有報錯,當報錯解決後,需要把源碼目錄中的CMakeCache.txt檔案刪除,然後再重新CMAKE,否則錯誤依舊make && make install       ##安裝過程時間較長chown -R mysql.mysql /usr/local/mysql/   ##使用權限設定vi /etc/my.cnf[client]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]user = mysql     ##使用者basedir = /usr/local/mysql    ##基礎目錄datadir = /usr/local/mysql/data    ##資料目錄port = 3306    ##連接埠character_set_server=utf8    ##服務語言設定pid-file = /usr/local/mysql/mysqld.pid    ##pid檔案位置socket = /usr/local/mysql/mysql.sock     ##socket檔案位置server-id = 1    ##服務IDsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESchown mysql:mysql /etc/my.cnfecho ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profileecho ‘export PATH‘ >> /etc/profilesource /etc/profile## 方便使用mysql命令,設定環境變數/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data## 初始化資料庫cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/systemctl daemon-reloadsystemctl start mysqldnetstat -anpt | grep 3306## 3306連接埠開啟 服務開啟成功systemctl enable mysqldmysqladmin -u root -p password "abc123"   給root賬戶設定密碼為abc123
mysql主從複製
在主 和 從mysql伺服器上vim /etc/my.cnf[mysqld]binlog-ignore-db=mysql,information_schemacharacter_set_server=utf8log_bin=mysql_binserver_id=1     ## 主從伺服器的 server_id 不相同log_slave_updates=truesync_binlog=1auto_increment_increment=2auto_increment_offset=1systemctl restart mysqld在 主MYSQL上 為 從伺服器授予許可權mysql -u root -pgrant replication slave on *.* to ‘replication‘@‘192.168.100.%‘ identified by ‘123456‘;show master status; +-------------------+----------+--------------+------------------+| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-------------------+----------+--------------+------------------+| master-bin.000002 |      335 |              |                  |+-------------------+----------+--------------+------------------+在從伺服器上mysql -u root -pchange master to master_host=‘192.168.100.105‘,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql_bin.000002‘,master_log_pos=335;start slave;show slave status \G;  Slave_IO_Running: Yes  Slave_SQL_Running: Yes## 出現這兩條YES 則說明 MYSQL主從複製完成
MFS 檔案系統部署

MFS Master (IP 192.168.100.107)
MFS MetaLogger (IP 192.168.100.108)
MFS Chunk1 (IP 192.168.100.109)
MFS Chunk2 (IP 192.168.100.110)

MFS Master
yum install zlib-devel gcc gcc-c++ male -yuseradd -s /sbin/nologin mfstar xzvf mfs-1.6.27-5.tar.gzcd mfs-1.6.27-5./configure --prefix=/usr/local/mfs  ##安裝目錄--with-default-user=mfs    ##預設使用者--with-default-group=mfs    ##預設使用者基本組--disable-mfschunkserver    ##不啟動節點伺服器--disable-mfsmount     ##不啟動mount伺服器make && make installcd /usr/local/mfs/etc/mfs/cp mfsmaster.cfg.dist mfsmaster.cfgcp mfsexports.cfg.dist mfsexports.cfg    ##掛載許可權cp mfstopology.cfg.dist mfstopology.cfg     ##架構感知cd/usr/local/mfs/var/mfscp metadata.mfs.empty metadata.mfs  ##防斷電/usr/local/mfs/sbin/mfsmaster start  ##啟動服務/usr/local/mfs/sbin/mfsmaster -s ##停止服務用這條命令
MFS MetaLogger
yum install zlib-devel gcc gcc-c++ male -yuseradd -s /sbin/nologin mfstar xzvf mfs-1.6.27-5.tar.gzcd mfs-1.6.27-5./configure --prefix=/usr/local/mfs  ##安裝目錄--with-default-user=mfs    ##預設使用者--with-default-group=mfs    ##預設使用者基本組--disable-mfschunkserver    ##不啟動節點伺服器--disable-mfsmount     ##不啟動mount伺服器make && make installcd /usr/local/mfs/etc/mfs/cp mfsmetalogger.cfg.dist mfsmetalogger.cfgvi mfsmetalogger.cfgMASTER_HOST = 192.168.100.107/usr/local/mfs/sbin/mfsmetalogger start  ##啟動服務/usr/local/mfs/sbin/mfsmetalogger -s  ##停止服務用這條命令
MFS Chunk
兩台Chunk伺服器的配置相同yum install zlib-devel gcc gcc-c++ male -yuseradd -s /sbin/nologin mfstar xzvf mfs-1.6.27-5.tar.gzcd mfs-1.6.27-5./configure --prefix=/usr/local/mfs  ##安裝目錄--with-default-user=mfs    ##預設使用者--with-default-group=mfs    ##預設使用者基本組--disable-mfsmaster    ##不啟動主伺服器--disable-mfsmount     ##不啟動mount伺服器make && make installcd /usr/local/mfs/etc/mfs/cp mfschunkserver.cfg.dist mfschunkserver.cfgcp mfshdd.cfg.dist mfshdd.cfgvim mfschunkserver.cfgMASTER_HOST = 192.168.100.107vim mfshdd.cfg添加一行/datamkdir /datachown -R mfs:mfs /data/usr/local/mfs/sbin/mfschunkserver start   ##啟動服務/usr/local/mfs/sbin/mfschunkserver -s     ##停止服務用這條命令
MFS 用戶端

由於要將MFS 檔案系統掛載到 前端PHP 伺服器上 ,作為使用者上傳圖片的儲存, MFS用戶端需要在PHP伺服器上安裝

安裝FUSE,MFS用戶端依賴於FUSEtar xzvf fuse-2.9.2.tar.gzcd fuse-2.9.2./configuremake && make installvi /etc/profileexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH## 設定環境變數source /etc/profile安裝mfs用戶端yum install zlib-devel gcc gcc-c++ male -yuseradd -s /sbin/nologin mfstar xzvf mfs-1.6.27-5.tar.gzcd mfs-1.6.27-5./configure --prefix=/usr/local/mfs  ##安裝目錄--with-default-user=mfs    ##預設使用者--with-default-group=mfs    ##預設使用者基本組--disable-mfschunkserver ##不啟動節點伺服器--enable-mfsmount     ##啟動mount伺服器make && make installmodprobe fuse          ##載入fuse模組到核心/usr/local/mfs/bin/mfsmount /var/www/html/webphp/uploads/photos -H 192.168.100.107   ##將MFS 檔案系統 掛載到 PHP伺服器上df -hT## 查看掛載情況

部署社交網站- MYSQL主從 與 MFS 檔案系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.