2014年8月31日 星期日

[FreeBSD]zfs snapshot建立

ZFS源自於Sun MicrosystemsSolaris作業系統開發的檔案系統。ZFS是一個具有高儲存容量、檔案系統與卷管理概念整合、嶄新的磁碟邏輯結構的輕量級檔案系統,同時也是一個便捷的儲存池管理系統。
而接下來要使用zfs中非常實用的功能-snapshot,關於snapshot的說明如下:
ZFS使用寫時拷貝技術的一個優勢在於,寫新資料時,包含舊資料的塊被保留著,提供了一個可以被保留的檔案系統的快照版本。由於ZFS在讀寫操作中已經儲存了所有構建快照的資料,所以快照的建立非常快。而且由於任何檔案的修改都是在檔案系統和它的快照之間共享的,所以ZFS的快照也是空間最佳化的。
可寫快照("克隆")也可以被建立。結果就是兩個獨立的檔案系統共享一些列的塊。當任何一個克隆版本的檔案系統被改變時,新的資料塊為了反映這些改變而建立,但是不管有多少克隆版本的存在,未改變的塊仍然在其他的克隆版本中共享。
首先要先觀察目前zfs狀態
#zpool status直行後出出現下列狀態,如果沒有請檢查一下相關設定.
 pool: <zpool name>
 state: ONLINE
  scan: none requested
config:

        NAME                  STATE     READ WRITE CKSUM
        <zpool name>          ONLINE       0     0     0
          gpt/disk0           ONLINE       0     0     0

errors: No known data errors
接著建立第一個snapshot指令如下:
#zfs snapshot <zpool name>@<snapshot name>
再來觀察剛剛建立的snapshot是否有被建立成功
#zfs list -t snapshot
NAME      USED  AVAIL  REFER  MOUNTPOINT
<zpool name>@<snapshot name>  snapshot M      -  zfs space G  -
以上就是非常簡單的zfs snapshot建立,然後進入進階指令用法.
1.刪除快照 
# zfs destroy <snapshot name>
2.壓縮快照
 # zfs send <zpool name>@<snapshot name> | gzip > <backupfile name>.gz(要先有快照檔才能壓縮)
3.只有一個snapshot檔案的指令(不建議使用萬一有需要在N個時間點前撈資料就發揮不了snapshot的功能)
#zfs hold keep <zpool name>@<snapshot name>
4.回復snapshot(不建議這樣使用rollback會回復所有snapshot的資料,萬一你只要恢復其中一個檔案時)
#zfs roolback <snapshot name>
5.首先設定可以看到 .zfs 的快照目錄
#zfs set snapdir=visible <zpool name>
再來就是到 /<zpool name>/.zfs 裡找你被刪掉的檔案囉 ~~
cd /.zfs/snapshot/<snapshot name>/

最後請思考一下下列問題當作功課:
1.如何建立多個snapshot?
2.如何建立多個帶時間(年月日時分)的snapshot?
3.建立snapshot後會影響到什麼?
4.怎麼刪除多個帶時間(年月日時分)的snapshot?

2014年8月26日 星期二

[FreeBSD]webmin增加大量使用者與大量使用者增加語法

1.在FreeBSD中要增加大量使用者有多種方式,先介紹最土法煉鋼的方式,語法如下:
echo <passwd> | pw useradd -n <username> -u <uid> -m -d <home dir> -g <groupname> -s <shell> -c <realname> -h 0
這方式有個問題如果人數到一定程度時,應該會抓狂,請自行找尋更好的方式或寫成迴圈程式處理.

2.使用webmin來增加大量使用者,語法如下:
create:<username>:<passwd>:<uid>:<gid>:<realname>:<home dir>:<shell>:::::
以上語法是網路上能查到的,但是在FreeBSD9.3+webmin-1,700時能順利增加大量使用者嗎?這點就讓大家去嘗試.

2014年8月24日 星期日

[Windows Core Server筆記]基本指令與安裝PowerShell

這一陣子忙著協助FS轉FreeBSD,利用這機會一並把zfs boot跟webmin一起學習,當然也順便找時間來玩微軟曾經出過的產品-Core Server(搞不好微軟本身都忘記他了XD)
首先Core-Server安裝過程不討論,當你一登入後就會直接進入cmd.exe畫面,喜歡圖形界面的一定會馬上Format掉,先來介紹基本指令來讓自己容易上手了解Core-Server.

sconfig 這指令讓使用者用最簡易的方式來設定Core-Server,當然指令派人士請略過(必學指數:五顆星)
Core-Server預設使用DHCP,所以請先讓他能上網更新後再安裝我們需要的PowerShell,當然您也可以無視微軟產品的更新,Core-Server更新方式如下:
1.執行 SCONFIG
2.選取選項 6 (下載並安裝更新).
過程當中不會顯示下載更新進度,只會顯示正在下載更新與正在安裝更新,套句國防部的台詞:沒有畫面!!!沒有畫面!!!Orz
我們操作微軟產品的好朋友-工作管理員(必學指數:五顆星)請一定要叫出來.
微軟官方文件截取部分文字敘述如下:
根據所安裝的更新,您可能需要重新啟動電腦,但系統將不會通知您。若要判斷安裝程序是否已完成,請使用工作管理員驗證目前沒有在執行" Wuauclt" 或 "Trusted Installer" 處理程序。您也可以使用 [檢視安裝的更新] 區段中的方法,檢查已安裝的更新清單。

安裝PowerShell
這裡一樣看一下微軟官方怎麼說,引文如下:
根據預設,"Windows PowerShell 未安裝在執行 Windows Server 2008 R2 核心的電腦上"。您可以使用下列方法來執行 Windows Server 2008 R2 核心的電腦上安裝 Windows PowerShell
讓我們繼續把PowerShell給裝下去,當然有簡單跟複雜方式,這都會介紹看使用者洗好了
1.簡易安裝PowerShell
1.1執行 SCONFIG
1.2選取選項 4 (設定遠端管理)
1.3選取選項 2 (啟用 Windows PowerShell)
1.4按一下 [確定]
2.複雜方式(熱愛指令敲擊者必用),過程中會提醒重新開機,請記得下列指令要全部輸入完.
2.1dism /online /enable-feature:NetFx2-ServerCore
2.2dism /online /enable-feature:NetFx3-ServerCore
2.3dism /online /enable-feature:NetFx2-ServerCore-WOW64
2.4dism /online /enable-feature:NetFx3-ServerCore-WOW64
2.5dism /online /enable-feature:MicrosoftWindowsPowerShell
2.6dism /online /enable-feature:MicrosoftWindowsPowerShell-WOW64
呼叫PowerShell的方式很簡單,在Cmd.exe畫面下直接輸入:PowerShell就可以,離開PowerShell也很簡單,輸入:exit就回到Cmd.exe畫面了.
請記得更新與安裝PowerShell接著我們才能體驗微軟利器-PowerShell.
未完待續.

2014年8月21日 星期四

[心得分享]FreeBSD使用ZFS boot安裝後遇到網卡非100M全雙工執行

基本上FreeBSD使用ZFS boot安裝不難,但是遇到了機率極低的網卡使用100M非全雙工的的速率執行,使用Ports更新及安裝套件上遇到一些麻煩,解決方式一並記錄下來希望不要在遇到@@
ee /etc/rc.conf
ifconfig_em0="inet x.x.x.x netmask x.x.x.x media 100BaseTX mediaopt full-duplex"

2014年8月19日 星期二

[MySQL]無法正常啟動問題處理方式

1.[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
#mysql_install_db
#/etc/init.d/mysqld restart

2.重建mysql.sock指令
#mysqladmin -S /mysql路徑/mysql.sock -u root