2011年12月4日 星期日

[ How-To] ESXI-5 操作手冊

Mware ESXI 5 安裝設定

1、登入 VMware 公司網站申請註冊EMAIL會員以便得到新版軟體序號,進入下載頁面取得 VMware ESXi 5 及管理軟體 VMware vSphere Client。
下載網站 :  https://www.vmware.com/tryvmware/index.php?errorCode=AUTH-ERR-20001

PS【硬體相容性問題】
安裝前須留意硬體基本需求與支援相容的問題,CPU 應能支援64位元架構,記憶體至少要有 2GB。


2、【開始安裝 vSphere Hypervisor 】
VMware vSphere Hypervisor 下載的網頁,提供的是安裝光碟映像 iso 檔,燒錄成開機光碟或 USB Dongle 放入電腦即可開機安裝。

進 BIOS 設定 CD -ROM 第一開機模式
進 BIOS 設定 USB-ROM 第一開機模式




選擇第一個開機選項執行安裝,全程大多以預設選項或 Enter 鍵就可簡單的完成安裝了。管理者 root 密碼改成在安裝時設定(選項 configure passwd),最後重新開機顯示登入主機的 IP 位址,就表示安裝成功可從遠端登入了。 ps 順便開啟ssh 功能





本機登入後顯示變更密碼及網路等設定項目,不過這些設定和更多的系統調整,全都可在遠端以 VMware vSphere Client 修改。因此,可以放心地把主機上架,轉移操作環境到管理端 PC 了。





3、【登入 vSphere Hypervisor 設定管理者密碼】
下載安裝新版的 VMware vSphere Client 管理軟體,或啟動 VMware vSphere Client 4 時依程式指示,升級至最新的適用版本。以使用者名稱「root」和安裝時設定的密碼登入,就可遠端管理 VMware vSphere ESXi 完成大部份的設定了。


下載 VM ESXI TOOL 下載處 :  https://localhosts-ip/  裝好的本機瑞的網頁就會各種工作的下載 lnk

4、基本設定

【網路連接埠設定】
主機使用雙埠的網路卡,或安裝兩張網路卡時,以校內慣用DHCP伺服器自動分配IP的環境中,測試結果是僅有「eth0」可取得IP。而「eth1」在系 統裡命名為「vmnic1」,從 VMware vSphere Client 裡的 Configuration > Hardware > Network Adapters ......,可看到 vmnic0 vmnic1 這兩張網路卡的狀態。
vimnic1 準備給對外的線路使用,配合校內網路線路規畫,若未單獨設置將無法供 Virtual Machine 以外部 IP 經由 Router 進網際網路。因為兩個網段的實體線路分開,虛擬主機系統裡也應循相同的原則設定。

此時,如果系統如已自動串接至預設的「Virtual Switch: vSwitch0」,需先將這個網卡自「vSwitch0」中移除,再以「Configuration > Hardware > Networking > Add Networking > Connection Types : Virtual Machine > Creat a Virtual Switch > 勾選vmnic1 ......」的步驟,建立「Virtual Switch: vSwitch1」後,未來使用 Public IP 的VM,也應將網卡網路連線的「Network Lable」,設定經由這個網路界面連接至網際網路。



 【固定IP設定】
Configuration > Hardware > Networking > Standard Switch:vSwitch0 > Properties > Ports > Management Network > Edit > IP Settings > Use the following IP Settings ......
取消自動取得IP設定,改為固定易記的IP位址。

   
【VM Guest 內外部 IP設定】
安裝vm Guest >  Edit Settings  > Network adapter1  (選取那張網card)  >  Device Status   >   勾選 Connect at power on  >  Network Connection > Network label : VM Network (選取那各區段)


【輸入序號】
VMware vSphere Hypervisor 安裝好後可試用60天,輸入申請核發的序號。
VMware vSphere Client > Configuration > Software > Licensed Features > ESX Server License Type > Edit > Assign a New License Key to This Host > Enter Key ......
授權的使用限期,從兩個月後到期變成「Never」。

【網路校時設定】
系統時間和本地時間相差八小時,設定網路自動校時以確保系統記錄及顯示時間為台灣時間。
VMware vSphere Client > Configuration > Software > Time Configuration > Properties > NTP Configuration ......
先勾選「NTP Client Enabled」再按「Options」,NTP Settings > NTP Servers > Add ......
加入伺服器位址,如「clock.stdtime.gov.tw」,網路校時雖未即刻生效,幾分鐘後查看已顯示為正常時間。
最好能將 NTP Daemon 改為自動啓動:
VMware vSphere Client > Configuration > Software > Time Configuration > Properties > Options > General > Startup Policy ......


【自動開關機設定】
VMware vSphere Client > Configuration > Software > Virtual Machine Startup/Shutdown > Properties
勾選允許 Virtual Machine 隨系統啟動或關閉,而依序自動開關機。點選列入清單上的 Virtual Machine,預設開關機間隔時間120秒。關機設定部份,Default Shutdown Delay 的 Shutdown Action 關機動作改為 Guest Shutdown,安裝 VMware Tools 的VM在Host端關機時,這些VM也自動改以相反順序關機。

【VM進入BIOS設定】
Edit Virtual Machine Settings > Options > Boot Options > Force BIOS Setup
開機想讓VM進入BIOS設定環境,Console視窗裡按F2鍵的時間很短促,不太容易成功,可經由設定強制下次開機時自動進入BIOS畫面。


【匯出 Virtual Machine】
Virtual Machine 的備份,可使用附加的「Datastore Browser」可對掛載在主機儲存裝置的 VM 檔案、資料夾完整複製,這是最簡單卻也最佔儲存空間的方法。

因此,可以試試匯出為「OVF Template」的備份方式:
Virtual Machine 關機後,VMware vSphere Client 裡點選將匯出的 VM > 功能表:File > Export OVF Template > Directory: 指定存放路徑 > Format: 選擇「Folder of files (OVF)」或「Single file (OVA)」……
儲存為單一的 OVA 檔,方便檔案管理,又能藉由壓縮節省儲存空間,是個不錯的選擇。

【匯入 Virtual Machine】
VMware vSphere Client > File > Deploy OVF Template > Deploy from a file or URL > Browse ……
指定下載或自行備份的 OVF Templete 為匯入來源,匯入後建議「Edit Settings」檢查硬體裝置無誤後,啟動這部 Virtual Machine 就可使用這部主機了。


5、快速安裝 VM  (LINUX 、WINDOWNS 版)
     
步驟 1、主機HOST ->New Virtual Machine ->Configuration Typical -> 設立 guset_vmnamne -> 選擇硬碟 -> 選擇 Guest Operating system os -> Create Network Connections (看是要配製儿張網卡 ) -> Virtual disk size  20G(下方有硬碟移動設定選項) -> Finsh 。





 步驟 2、Browsc Datastores ( 選取 已經傳上 datastore1 的 ios 檔 ) 開始安裝。


步驟 3、指定讀取安裝作業系統的 iso 檔來源處作法 :  Edit Settings ->Floppy drive1 -> Hardware -> CD/DVD dirve1 -> Device Status 內 勾選 Connect ap pwoer on -> Datastore ISO file --> Browsc Datastores ( 選取 已經傳上 datastore1 的 ios 檔 ) 開始安裝。



   

6、如何快速部署各種 standard 公版VM- IOS檔,並快速復制 VM 方式作各種客制化 。

           


參考及感謝轉貼文章出處 :
 http://blogs.yyes.chc.edu.tw/post/2/2914
http://blogs.yyes.chc.edu.tw/category/2/2



待續

2011年12月1日 星期四

[ How-To] NFS automont

架設環境 : EXSI-5

 Server  OS ( Debian6.0.3 )

需求 :
nfs server  192.168.11.11,分享目錄/data/123
nfs client  192.168.11.12 mount 目錄一樣 /data/123


使用了NFS 之後,我想大家應該會知道,若大家連線越多,那麼對 Server 的資源也就浩用越大,若是 Client 能設定成只在需要的時候才自動掛上必要的目錄,而在一段時間之後若沒有再使用就卸載,如此對於 Server 的使用也能相對的減少資源使用。

autofs 可以用來自動掛載資料,也就是我們這次的重點,而 autofs 是一個 daemon,一旦啟動後它會駐列在系統中,他會先載入設定檔然後監視指定的目錄,一旦使用者要存取所指定的目錄時就會開始自動掛載起來。以下的範列,我將示範在主機裡分享 /home 目錄可供 Client 掛載,而在 Server 的設定,完全就跟往前一樣設定好分享條件,然後啟動 NFS 就可以了。所以我們要調整的是 Client 的部份。






A. nfs server  操作部分 ( 192.168.11.11 )

0. apt-get update 更新套件 list 並 安裝

$ apt-get update ; apt-get install   nfs-common  nfs-kernel-server

1. 修改/etc/exports
/data/123      192.168.11.12(rw,sync,no_subtree_check)


2. 建立目錄檔並設定目錄權限 
  
  $ mkdir -p  /data/123
  $ chmod 775 /data  -R
  $ chown root:nfs-upload  123 -R

 
3. 新增群組及使用者 &將舊有的使用者加入群組
  $ groupadd -g 210 nfs-upload
  $ eradd -g 210 -u 210 -M nfs-upload
  $ vim /etc/group
  $ nfs-upload:x:210:user1,user2


ps 修改較為嚴格的檔案權限將目錄與檔案,設定使用群組會更保險一點!


4. 啟動 NFS 服務
首先,一定要記得啟動 NFS 之前一定要先把 portmap 啟動才行,否則會出錯:
$ /etc/init.d/nfs-server start




5. 檢查是否有開啟 portmap 111 port 和rpc.mount 2049 port
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      815/portmap
tcp        0      0 192.168.11.11:53        0.0.0.0:*               LISTEN      4441/named
tcp        0      0 192.168.2.141:53        0.0.0.0:*               LISTEN      4441/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      4441/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4122/sshd
tcp        0      0 0.0.0.0:33208           0.0.0.0:*               LISTEN      1090/rpc.mountd
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      4441/named
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1610/exim4
tcp        0      0 0.0.0.0:58524           0.0.0.0:*               LISTEN      828/rpc.statd
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -

6. 啟動之後,可以使用 showmount 看看有分享那些目錄:
# showmount -e
Export list for localhost:
/data/123 192.168.11.12


你可以使用 rpcinfo 這個工具來看看有那些服務使用 rpc 資源:
# rpcinfo -p 192.168.11.11
   程式採用的協定連接阜
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  56335  status
    100024    1   tcp  58524  status
    100021    1   udp  42987  nlockmgr
    100021    3   udp  42987  nlockmgr
    100021    4   udp  42987  nlockmgr
    100021    1   tcp  48867  nlockmgr
    100021    3   tcp  48867  nlockmgr
    100021    4   tcp  48867  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100005    1   udp  48744  mountd
    100005    1   tcp  33208  mountd
    100005    2   udp  48744  mountd
    100005    2   tcp  33208  mountd
    100005    3   udp  48744  mountd
    100005    3   tcp  33208  mountd



B. nfs clinet  操作部分 ( 192.168.11.12 )

1. 編輯 設定 auto.master 主要是設定需要監控那一個目錄,然後再指定其設定檔:
#vim /etc/auto.master
/data/123   /etc/auto.123    --timeout=30
上面的意思是,autofs 要去監控 /data/123 目錄,而設定檔在 /etc/auto.123 這個檔案裡,而 timeout 時間是 30 秒。

ps (那個 /data/nfsfile 目錄不需要存在,因為 autofs 會主動的建立該目錄! 如果你建立了,可能反而會出問題~先確定一下沒有該目錄吧!)



2. 編輯設定 auto.123 是由 auto.master 設定而來的,裡面設定了/data/123 目錄下的掛載來源和參數:

#vim auto.123
test  -fstype=nfs,intr,soft   192.168.11.11:/data/123

3. 啟動 autofs
 # /etc/init.d/autofs start

4. 驗証可以用 mount or df 
現在再來看看目前的 mount 狀態:
# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)

上面可以看到 automount 正在監控 /data 目錄,而且為我們還沒有進入 /home 目錄裡的任何資料夾,所以會沒有其它的 mount 資訊。
# cd /data/test/
# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
192.168.11.11:/data/123 on /data/test/123 type nfs (rw,intr,soft,sloppy,addr=192.168.11.11)
看到了吧,最後一行正顯示著 192.168.11.11 的 /data/123 正被我們掛載。




# cd /data/test/123
# mount | grep 123
192.168.11.11:/data/123 on /data/test/123 type nfs (rw,intr,soft,sloppy,addr=192.168.11.11)

# 上面的輸出是同一行!瞧!突然出現這個玩意兒!因為是自動掛載的嘛!

# df
檔案系統               1K-區段      已用     可用 已用% 掛載點
/dev/sda1             19751804   1024252  17724188   6% /
tmpfs                   517208         0    517208   0% /lib/init/rw
udev                    512788        96    512692   1% /dev
tmpfs                   517208         0    517208   0% /dev/shm
192.168.11.11:/data/123
                      19751808   1002368  17746048   6% /data/test/123

檔案的掛載也出現沒錯!



由於auto mount 的原因一定會有多一各載掛目錄,先用lnk 來設定,後續再尋找方式解決

# cd /data
# ln -s  /data/test/123    123


查看設定error log 指令
tail /var/log/messages

NFS 到底開了哪些埠口
# netstat -tulnp| grep -E '(rpc|nfs)'

顯示出目前這部主機的 RPC 狀態
[root@www ~]# rpcinfo -p localhost


請顯示所設定好的相關 exports 分享目錄資訊
# showmount -e localhost


/etc/exports 只是比較特別的權限參數還有很多預設參數呢! 這些預設參數在哪?我們可以檢查一下 /var/lib/nfs/etab
# tail /var/lib/nfs/etab

automount 重新設定
# 1. 重新掛載一次 /etc/exports 的設定
[root@www ~]# exportfs -arv
你也可以利用 showmount -a localhost 來查出來那個用戶端還在連線

# 2. 將已經分享的 NFS 目錄資源,通通都卸載
[root@www ~]# exportfs -auv
# 這時如果你再使用 showmount -e localhost 就會看不到任何資源了!


設定完成後,後續再補上防火牆的設定規則。

  

參考網站  :  鳥哥  http://linux.vbird.org/linux_server/0330nfs.php#nfsserver_need
                     NFS & Automount  http://www.l-penguin.idv.tw/article/nfs-automount.htm


[ How-To] MYSQL REPL

環境規格
EXSI-5 內建立 VM二台
DB Server ( Debian6.0.3 )

需求 :

 mysql replaction
     master  ns1.vtest.tv    IP: 192.168.11.11
     slave    ns2.vtest.tv     IP: 192.168.11.12
     DB名稱 mytest



設定之前
1. 設定Master對Slave複製的動作之前,要先確認Mysql版本之間允許複製的相容性條件,參閱這個版本之間相容性的說明 http://dev.mysql.com/doc/refman/5.0/en/replication-compatibility.html。



A. Master DB 操作部分 ( 192.168.11.11)
Master要做的流程大概如下:
1. 設定 一個同步的帳號(如果是用root,可以忽略此步驟)
2. 設定my.cnf
3. 將資料庫變成唯讀(read only)
4. 將mytest資料匯出(mysqldump或tar)
5.  解除資料唯讀狀態
6. 重新啟動mysql讓剛設定的my.cnf 生效
7. 將匯出的資料拷貝(scp)至slave


0. apt-get update 更新套件 list 並 安裝 MYSQL套件

apt-get update ; apt-get install libdbd-mysql-perl libmysqlclient16  mysql-client  mysql-client-5.1 mysql-common mysql-server-5.1
mysql-server-core-5.1 

1. 設定msql 可以開放本機之外的機器連線
vim /etc/mysql/my.cnf  內設定改成下面

關閉才能本機使用設定
#skip-external-locking
#bind-address           = 127.0.0.1

設定log 放的地方
log_slow_queries        = /var/log/mysql/mysql-slow.log
# Here you can see queries with especially long duration
log_slow_queries        = /var/log/mysql/mysql-slow.log


重新啟動 mysql 看3306 port 是否有正常啟動
/etc/init.d/mysql restart




2. 設定一個同步的帳號repl,密碼為slavepass,讓repl具有REPLICATION的權限,相關指令如下
先建立"mytest" DB
mysql> create database `mytest` ;
 
Query OK, 1 row affected (0.00 sec)

mysql> show databases ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytest              |
+--------------------+
3 rows in set (0.00 sec)


2. 設定一個同步的帳號repl,密碼為slavepass,讓repl具有REPLICATION的權限,相關指令如下:
mysql> create user 'repl'@'%' identified by 'replpasswd' ;
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication  slave on *.* to 'repl'@'%' ;
Query OK, 0 rows affected (0.00 sec)


3. Master主機必須產生binlog檔案,並且指定只有同步 mytest 這個資料庫,/etc/my.cnf 的修改如下:

[mysqld]
server-id = 1   #此id不可以重覆
log-bin = mysql-bin  #指定產生binlog檔案的開頭檔名
binlog-do-db = mytest   #只針對mytest db 產生binlog

4.複製Master上的資料,查詢目前寫到那
在Replication完成前,Master跟Slave的資料必須一致,故在匯出資料前先Lock成唯讀 
mysql > FLUSH TABLES WITH READ LOCK;


mysql> show master status ;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      494 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)



關閉Slave Mysql(如果Mysql沒有shutdown的話)。
# mysqladmin -u root –p shutdown

5. 將mytest資料庫整個匯出,此方式可以使用mysqldump或者是tar的方式把檔案壓縮起來
#tar -cvf  mytest.tar.gz  mytest.tar.gz  #將tar起來的壓縮檔複製到Slave Mysql上資料存放的資料夾中,資料庫有innoDB時最好用這各備份。

#mysqldump -u root -p mysql > mysql.sql       #將mysql的資料匯出成mysql.sql

6. 將資料匯出後,解除資料唯讀狀態
mysql>UNLOCK TABLES;

7. 重新啟動mysql,讓剛設定的my.cnf生效;重新啟動後,在Master主機上的add、update、delete等動作都會記錄在binlog檔案中

$/etc/init.d/mysql restart

8. 最後將mytest.sql拷貝(scp、rysnc )至slave主機


MySQL Replication Slave設定

Slave要做的流程大概如下:
1. 修改my.cnf
2. 匯入mytest資料庫的資料
3. 設定Master主機的相關訊息
4. 重新啟動mysql


0. apt-get update 更新套件 list 並 安裝 MYSQL套件及my.conf基本設定如上MASTER


1. 設定my.cnf相關訊息

[mysqld]
server-id = 2  #此id不可以重覆
log-slave-updates   #告訴slave讀取binlog,啟動slave的重要選項之一
log-bin = mysql-bin   #指定產生binlog檔案的開頭檔名
binlog_format = mixed    #設定binlog的儲存格式,(maxed為預設值)
relay-log = host_name-relay-bin    #記錄著binlog處理的過程,可以執行【FLUSH LOGS】讓mysql自動刪除較舊的檔案
replicate-do-db = mytest    #限制slave只同步mytest資料庫的資料
master-connect-retry = 60   #當slave無法連線至master時,間隔60秒嘗試連線(預設為60秒)

2. 將mytest的資料匯入,匯入之前請先關閉 slave_mysql
#mysql -u root -p mytest < mytest.sql

或將資料給解壓縮覆蓋至/etc/mysql
# tar -xvf   mytest.tar.gz
這樣子的動作是在於Master和Slave之間要同步的資料庫,在啟動Replication之前可以一致。

3. 設定Master主機的相關訊息,讓Slave知道Master的位置

請在mysql下執行底下指令

mysql>CHANGE MASTER TO
MASTER_HOST=’192.168.11.11′,
MASTER_USER=’repl’,
MASTER_PASSWORD=’slavepass’;
ps. 以往的方式是直接在my.cnf中設定master的相關訊息;但是,這樣的方式已經改了,必須使用在 mysql下執行【CHANGE MASTER TO】的指令


4. 重新啟動mysql

$/etc/init.d/mysql restart

設定完MySQL的M/S架構後,再來就是檢查及測試的動作了


5. 要如何確定mysql slave是否正常運作?(用mysql commone & phpmyadmin)

登入phpMyAdmin後,在【狀態】的分頁中往下拉,會看到一個Slave status的狀態表
如果底下2行都出現Yes的話表示slave是在執行中
Slave_IO_Running Yes
Slave_SQL_Running Yes

mysql 指令 :
觀察目前Master的狀態
mysql> show master status ;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 |      193 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql > show slave status\G;

mysql> show  slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.11.11
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000012
          Read_Master_Log_Pos: 193
               Relay_Log_File: host_name-relay-bin.000115
                Relay_Log_Pos: 338
        Relay_Master_Log_File: mysql-bin.000012
             Slave_IO_Running: Yes -->有正常抄寫
            Slave_SQL_Running: Yes -->有正常抄寫
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 193
              Relay_Log_Space: 642
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

ERROR:
No query specified



在master 建立新的db來測試看slave是否有即時建立即成功
由於目前是新建立的db所以資料不用寫入slave 資料即可即時抄寫。
如果是有一堆資料的舊db 請使用mysql 指令設定Slaver機制


6. 設定這些參數到Slave Mysql運作
mysql> CHANGE MASTER TO
MASTER_HOST=’192.168.11.11′,
MASTER_USER=’repl’,
MASTER_PASSWORD=’replpasswd’,
MASTER_LOG_FILE=’mysql-bin.000003 ′,
MASTER_LOG_POS=494;


7. 登入phpmadmin 修改 slave 的 localhost ip 並鎖定Slave Mysql的帳號
   鎖定Slave Mysql的所有帳號也包含root,只有select的權限,這樣子才能確保覆寫機制的同步性。

要如何關閉、啟動slave?

mysql>slave stop;     #關閉slave服務
mysql>slave start;    #啟動slave服務

注意事項:
A. 整個過程不論Master Mysql是否有shutwown,務必確保Master Mysql不會有資料的異動。
B. Slave Mysql的所有帳號一定要只剩select權限。
C. 有使用 INNODB 資料庫最好用tar 來備份,否則資料會備份不完全。
D. 後續補上防火牆設定規則

[ How-To] DNS MASTER / SLAVE SETUP

DNS Server ( Debian6.0.3 ) 
架設環境 : EXSI-5 

需求 : 

A. 假設申請了一個 Domain name 叫做 vtest.tv,對應的 IP 為 192.168.11.11,
並需要兩個 hostname,www.vtest.tv 與 adm.vmtest.tv 對應到同一個 IP 。 


B. 設計兩台 DNS server ( Master / Salve ) , 做為備援,
Slave 自動會更新 Zone 資訊。

Master DNS : ns1.vtest.tv    ip : 192.168.11.11 
Slave DNS : ns2.vtest.tv       ip: 192.168.11.12


A. Master DNS 操作部分 ( 192.168.11.11 )

0. apt-get update 更新套件 list 並 安裝

apt-get update ; apt-get install bind9


1. 修改/etc/bind/named.conf.options

options {
directory "/var/cache/bind";
//Hinet DNS
forwarders { 168.95.1.1; };
allow-query { any; };
allow-transfer { none; };
};

2. 建立 zond 目錄 mkdir /etc/bind/zone

3. 修改 /etc/bind/named.conf 並加入

...略...
zone "vtest.tv" {
type master;
file "/etc/bind/zone/db.vtest.tv";
// Slave DNS 192.168.11.12 可以向 Master DNS 192.168.11.11 做資料更新動作。
allow-transfer { 192.168.11.12;};
};


zone "11.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zone/db.192.168.11";
// Slave DNS 192.168.11.12 可以向 Master DNS 192.168.11.11 做資料更新動作。
allow-transfer { 192.168.11.12;};  //開放給指定 slave
};

include "/etc/bind/named.conf.local";

4. 接著設定正解檔案 /etc/bind/zone/db.vtest.tv
複製一份/etc/bind/db.local來修改
cp /etc/bind/db.local  /etc/bind/zone/db.vtest.tv

vim /etc/bind/zone/db.vtest.tv


$TTL    600
@       IN      SOA     vtest.tv. root.vtest.tv. (
                       20111202        ; Serial
                           1800            ; Refresh
                          86400           ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL


@        IN NS www.vtest.tv.
@        IN A 192.168.11.11

www  60  IN A 192.168.11.11
www  60  IN A 192.168.11.12
adm  60  IN A 192.168.11.11
adm  60  IN A 192.168.11.12
ns1  60  IN A 192.168.11.11
ns2  60  IN A 192.168.11.12
mail  60  IN A 192.168.11.10




相關資訊可參考鳥哥:正解資料庫檔案設定 http://linux.vbird.org/linux_server/0350dns.php#DNS_master_name

5. 接著設定反解檔案 /etc/bind/zone/db.192.168.11
一樣複製一份 /etc/bind/db.local 來修改
cp /etc/bind/db.local  /etc/bind/zone/db.192.168.11

vim /etc/bind/zone/db.192.168.11


$TTL    600
@       IN      SOA     vtest.tv. root.vtest.tv. (
                                 2         ; Serial
                           1800         ; Refresh
                          86400        ; Retry
                        2419200      ; Expire
                         604800 )     ; Negative Cache TTL
@ IN NS www.test.tv.
11 IN PTR www.vtest.tv.
12 IN PTR www.vtest.tv.
11 IN PTR ns1.vtest.tv.
12 IN PTR ns2.vtest.tv.
11 IN PTR adm.vtest.tv.
12 IN PTR adm.vtest.tv.
10 IN PTR mail.vtest.tv.

相關資訊可參考鳥哥:反解資料庫檔案設定  http://linux.vbird.org/linux_server/0350dns.php#DNS_master_ip



6. 重新啟動後, 簡易測試, 查看 system log 有沒有錯誤訊息 或 注意事項
# cat /var/log/syslog


或看 named-log error
#named -g


列出 預設的 port 53
# netstat -tlnap

7. 修改 本機端 dns 設定 
# /etc/resolv.conf
nameserver 168.95.11.11


8. 查証DNS 是否設定成功,可用 指令  nslookupdig -t、traceroute 、 ping  


1、 nslookup  adm.vtest.tv

Server:       192.168.11.11
Address:    192.168.11.11#53

Name:   adm.vtest.tv
Address: 192.168.11.11
Name:   adm.vtest.tv
Address: 192.168.11.12


2、 dig -t www.vtest.tv
;; Query time: 0 msec
;; SERVER: 192.168.11.11#53(192.168.11.11)
;; WHEN: Thu Dec  1 13:14:33 2011
;; MSG SIZE  rcvd: 512


3、 traceroute   ns1.vtest.tv
traceroute to ns1.vtest.tv (192.168.11.11), 30 hops max, 60 byte packets
 1  adm.vtest.tv (192.168.11.11)  0.384 ms  0.382 ms  0.374 m

4、 ping www.vtest.tv
PING www.vtest.tv (192.168.11.11) 56(84) bytes of data.
64 bytes from ns1.vtest.tv (192.168.11.11): icmp_req=1 ttl=64 time=0.011 ms
64 bytes from adm.vtest.tv (192.168.11.11): icmp_req=2 ttl=64 time=0.012 ms


# ping www.vtest.tv
PING www.vtest.tv (192.168.11.12) 56(84) bytes of data.
64 bytes from adm.vtest.tv (192.168.11.12): icmp_req=1 ttl=64 time=0.187 ms
64 bytes from www.vtest.tv (192.168.11.12): icmp_req=2 ttl=64 time=0.129 ms
64 bytes from ns2.vtest.tv (192.168.11.12): icmp_req=3 ttl=64 time=0.149 ms




B. Slave DNS 操作部分 ( 192.168.11.12 )

0. apt-get update 更新套件 list 並 安裝

apt-get update ; apt-get install bind9

1. 修改/etc/bind/named.conf.options

options {
directory "/var/cache/bind";
//Hinet DNS
forwarders { 168.95.1.1; };
allow-query { any; };
allow-transfer { none; };
};

2. 建立 zond 目錄 mkdir /etc/bind/zone
並且宣告權限讓資料可以寫入同步
chown bind.bind /etc/bind/zine

3. 修改 /etc/bind/named.conf 並加入

...略...
zone "vtest.tv" {
type slave;
file "/etc/bind/zone/db.vtest.tv";
// Master DNS 192.168.11.11 做資料更新動作。
masters { 192.168.11.11;};
};

zone "11.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/zone/db.192.168.11";
//Master DNS 192.168.11.11 做資料更新動作。
masters { 192.168.11.11;};
};

include "/etc/bind/named.conf.local";


4. 重新啟動後, 簡易測試, 查看 system log 有沒有錯誤訊息 或 注意事項
# cat /var/log/syslog

列出 預設的 port 53
# netstat -tlnap



修改 本機端 dns 設定
# /etc/resolv.conf
nameserver 127.0.0.1


# nslookup www.vtest.tv
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   www.vtest.tv
Address: 192.168.11.12
Name:   www.vtest.tv
Address: 192.168.11.11

# nslookup adm.v.tv
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   adm.vtest.tv
Address: 192.168.11.12
Name:   adm.vtest.tv
Address: 192.168.11.11





# 關掉 Master 測試看看
# 新增 Master zone file , 測試 slave 會不會自動更新
# 測試可把 refresh 設定為 60 秒 , 加快 slave 跟 Master 比對的時間

PS (  Slave 主機向 Master 要求傳送 Zone File 的時機
master 主機上的 named 啟動、Reload 時, 發送 dns notify 信號通知 NS 主機 (除本身外) 比對 zone file serial, 且 master serial 大於 slave serial 時.-
slave 主機上的 named 啟動時, 發現 master serial 大於 slave serial, 或無 zone file 存在時.
 slave 主機每隔 refresh 時間, 向 master 查詢 zone file serial, 發現 master serial 大於 slave serial 時.)




# 測試反解
nslookup 192.168.11.11
Server:         192.168.11.11
Address:        192.168.11.11#53

11.11.168.192.in-addr.arpa     name = mail.vtest.tv.
11.11.168.192.in-addr.arpa     name = adm.vtest.tv.
11.11.168.192.in-addr.arpa     name = www.vtest.tv.


補上兩個好用的dns測試網站:

1.http://pingability.com/zoneinfo.jsp?domain=
2.http://http://www.checkdns.net/quickcheckdomainf.aspx