[Note] 這是工作筆記文

這單純是工作筆記文,以前沒寫過,現在剛好筆記一下,人老忘得快,趕快寫起來這樣以後還會救到自己(喂

其實這禮拜去了四天機房,單純是因為 10.1.0.0/16 惹的禍,該說我們太相信廠商,還是我自己太笨沒察覺呢(思

底下要紀錄的東西,網路上文章超多,所以真的要找設定請自己去 Google,我只會放命令在這裡而已(笑

MySQL Replication

Master DB

mysql -u root -p
mysql > CREATE USER ‘replication_account’@'%’ IDENTIFIED BY ’hereismypasswd’;
mysql > GRANT REPLICATION SLAVE ON . TO ‘replication_account’@'%’;
mysql > FLUSH PRIVILEGES;
mysql > SHOW MASTER STATUS;

/etc/mysql/my.cnf

#bind-address = 127.0.0.1
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
innodb_flush_log_at_trx_commit=1
sync_binlog=1

Slave DBs

mysql -u root -p
mysql > CHANGE MASTER TO MASTER_HOST=’192.168.0.40′, MASTER_USER=’replication_account’, MASTER_PASSWORD=’hereismypasswd’, MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=106;

/etc/mysql/my.cnf
#bind-address = 127.0.0.1
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log

如果要搬移 MySQL 的資料檔案,請先編輯 /etc/apparmor.d/user.sbin.mysqld,加入以下兩行

/mydb/mysql/ r,
/mydb/mysql/** rwk,

上面這兩行就寫在原本 /var/lib/mysql/ 底下就好了,上述的 /mydb/mysql/ 就是完整拷貝 /var/lib/mysql/ 來的。記得拷貝之前要先關掉 MySQL 以免壞掉。

啟動 MySQL 之前,記得要 reload 一下

sudo /etc/init.d/apparmor reload

MySQL-Proxy

Master 資料庫唯寫,Slave 資料庫唯讀

sudo apt-get install mysql-proxy

裝好之後一行指令結束,詳細的設定可以 --help-all 去查看。

/usr/bin/mysql-proxy \ 
--daemon \ 
--keepalive \ 
--admin-username=root \ 
--admin-password=ink.net.tw#qwe \ 
--admin-lua-script=/usr/share/mysql-proxy/admin.lua \ 
--proxy-backend-addresses=192.168.0.40:3306 \ 
--proxy-read-only-backend-addresses=192.168.0.10:3306 \ 
--proxy-read-only-backend-addresses=192.168.0.20:3306 \ 
--log-file=/var/log/mysql-proxy.log \ 
--log-level=debug \ 
--max-open-files=1024 \ 
--proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua

NFS

其實也沒什麼好講的,因為客戶機器的特殊要求,不得不使用 NFS,不然,光纖卡接到 SAN 就好了,何苦要用這個來降低效能(抓頭

mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 192.168.0.50:/nfsroot/webserver /home/hinablue/webserver

VMware with SAN

這挺難搞的,由於 SAN 用了八組光纖卡,接到兩台實體機器,一台純實體機器,另一台是虛擬機器(VMware),結果就導致看不出 SAN 上面的 LUN 到底是怎麼排列的。雖然在 VMware 裡面要用是沒差(他是使用類似 iSCSI 的方式,認 Target ID 來使用)。

但是,由於我有一台實體機器,這台機器要看 SAN 就會很痛苦。因為,SAN 上面有多少個存儲裝置,他就會列出多少。

所以我一開始裝 Ubuntu 的時候,我的磁碟代碼用到 /dev/sdz,而且這個 /dev/sdz 還是我實體機上面的硬碟,其他全部被 SAN 拿走了(崩潰

所以 Boot loader 怎麼也無法安裝!

逼不得已,只好把 SAN 整組關機,讓我先把實體機器安裝完成之後,再把 SAN 開機,免得又被光纖卡搶走磁碟代碼。納悶的是,為什麼主機上的光纖卡,會比我機器上實體硬碟的優先順序高呢?!

實體機器上面,請先安裝 multupath

sudo apt-get install multipath

然後就可以用指令來看 SAN 所切出來的 LUN 了,

sudo multipath -ll

通常你會拿到像這樣的東西,

mpath5 (3600c0ff00015f6ac0bb0075101000000) dm-06 HP,P2000G3 FC/iSCSI
size=479G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 6:0:0:3  sdv 65:80  active ready  running
  `- 2:0:0:3  sdd 8:48   active ready  running

然後會有一狗票,基本上 mpath5 就代表在 SAN 裡面 LUN 代號是 5,當然這也是有例外的,然後我就是遇到例外的那一個(崩潰

這個時候,後面的 3600c0ff00015f6ac0bb0075101000000 就很重要了,這是每一個 LUN 的唯一代碼,你在 VMware 裡面去看 SAN 也會有類似的東西,但是會長的不太一樣,從 VMware 裡面看到大概會長得像是這樣 nna.600c0ff00015f6ac0bb0075101000000 很類似,就是開頭不同而已。

由於實體機器會看到所有的 SAN 機器上面的 LUN,那麼你在做 LVM 的時候就不能亂用,因為,你若是不小心用到 VMware 已經在使用的 LUN,那麼,你原本在 VMware 裡面所使用的磁碟,就再見了!

所以說,請在 VMware 與實體機器之間,先確認好 LUN ID,並且分配好誰用哪幾個 LUN,不然不是 VMware 死掉,就是實體機器死掉(驚悚

至於 LVM 請看鳥哥教學,謝謝(鞠躬

TL; DR

後記是這樣,本來想寫一些關於 FortiGate 或是 CtriX 的東西,但是礙於那是客戶的機器,所以我也不能在這邊多說什麼。不過,以往接觸這兩台機器的經驗是,天殺的 Console實在是超級無敵難用的。

但是!

現在新的機器,不僅全部都有 WEB 界面可以控制,連 L3 Switch 都有 WEB 界面可以用耶(大驚小怪!不過,講是這樣講,我在 FortiGate 上面還是一直撞牆,這種高階機器真的跟我沒什麼緣份,我連照著官網的教學做都失敗,可見我人品可能不是太好。

不過後來我發現一件事情,FortiGate 的某些設定,要 Console 裡面才有,或者是說,如果你沒有特別去 Console 把他啟動的話,在 WEB 上面是看不到的(丟滑鼠

總之,高階網通設備就是跟我無緣(定案

另外,10.1.0.0/16 的緣由,是 VLAN 切了四組,每組走各自的 Gateway,結果,網路遮罩我傻傻的照 /16 去設定(255.255.0.0),導致四組 VLAN 之間無法互通。其實應該是 /24 才對(眼神死

廠商給的文件寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!寫錯了!

然後我自己設好所有虛擬機器,卻傻傻的用 /16 去做網路遮罩(就這樣浪費了我四天啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

Hina Chen
偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。
Taipei