用Linux創建多應用系統備份服務器
本文旨在結合本身的工做實際,利用LinuxFTP服務器創建了一個多系統備份服務器異地備份策略.
1 創建LinuxFTP服務器
使用了Red Hat Enterprise Linux 5 Update1, 如下全部實例中的Linux命令均在該操做系統下完成,爲了加強數據備份的安全性、服務器網絡鏈接的高可用性及吞吐量,在服務器中可使用Raid技術加強數據的安全性和完整性,使用雙網卡綁定技術來提升網絡鏈接須要的性能。Raid 的具體實現能夠根據用戶各自的硬件環境採用Raid卡或着Linux提供的軟件Raid實現,下面是Linux下實現軟件Raid的具體實例。
1.1 Linux建立軟Raid的配置過程以Raids爲例,在Linux中使用3塊廉價IDE硬盤組建一個Raid5設備,從而實現數據的安全性。組成Raid5設備的3塊IDE硬盤在Linux中的設備文件名分別爲:/dev/hdb (第2個IDE硬盤)、 /dev/hdc (第3個IDE硬盤)、/dev/hdd(第4個IDE硬盤)。(1)建立新磁盤分區用root用戶執行命令#fdisk /dev/hdb, 完成對第2 個IDE 硬盤的格式化。
在Command(m for help) :提示下輸入n,即
建立新的磁盤分區。
在Command action
e extended
p primary partition (1-4) : 提示下輸入p, 即建立主分區。
在Partition number (1-4) : 提示下輸入1 , 即分區號。
在First cylinder (1-522, default 1) : 提示下按回車,即指定起始柱面(注意:括號中尾柱面數字取決於硬盤的具體型號)。
在Last cylinder or +size or +sizeM or +sizeK (1-522, default 522) : 提示下按回車, 即指定尾柱面。在Command (m for help) : 提示下輸入p , 即查看分區狀態,若是看到/dev/sdb1 等信息則說明分區成功。
在Command(m for help) :提示下輸入t,即轉換分區類型。
在Hex code (type L list codes) : 提示下輸入L,即顯示分區編碼列表。
在Hex code (type L list codes) : 提示下輸入fd,即LinuxRaid分區編碼。
在Command(m for help) :提示下輸入w ,即保存退出。
重複以上步逐,在其他2塊硬盤上建立Linux-Raid分區。完成後須要從新啓動Linux主機,以使設置生效。
(2)建立Raid設備
執行命令# mdadm -Cv /dev/md0 -l5 -n3 -c128 /dev/hd[b,c,d]1命令中各參數的做用以下:「-C」 :建立一個新的陣列; 「/dev/md0」 :表示陣列設備名稱; 「-l5」表示設置陣列模式,能夠選擇0、 一、 四、 五、 6, 它們分別對應於Raid0、 Raid一、 Raid四、Raid五、Raid6,這裏設爲Raid5模式; 「-n3」指設置陣列中活動設備的數目, 該數目加上備用設備的數目應等於陣列中的總設備數; 「-c128」指設置塊的
尺寸爲128 kb, 缺省爲64 kb ; 「/dev/hd[b, c,d,]1」 指當前陣列中包含的全部設備標識符,也能夠分開來寫,中間用空格分開。當建立一個新陣列或者對陣列重構時,設備須要進行同步操做。這一過程須要必定時間,能夠經過查看/proc/mdstat文件, 來顯示陣列的當前狀態以
及同步進度、所需時間等信息。
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 hdd1[2] hdc1[1] hdb1[0]
75469842 blocks level 5, 128 k chunk, algorithm 2
[3/2] [UU_]
[>....................] recovery = 4.3 % (1622601/
37734912) finish=1.0min speed=15146K/sec
unused devices:
當新建或重構完成後,再次查看/proc/mdstat
文件:
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 hdd1[2] hdc1[1] hdb1[0]
75469842 blocks level 5, 128k chunk, algorithm 2 [3/
3] [UUU]
unused devices:
由此能夠很清楚地看出當前陣列的狀態,各部
分所表明的意思以下: 「[3/3]」中的第1位數表示陣
列所包含的設備數,第2位數表示活動的設備數,如
果有一個設備損壞,則第2位數將減1; 「[UUU]」標
記當前陣列能夠正常使用的設備狀況,現假設/dev/
hdb1出現故障,則該標記將變成 [_UU],這時的陣
列以降級模式運行,即該陣列仍然可用,可是再也不
具備任何冗餘; 「sdd1[2]」 指陣列所包含的設備數爲
n,若方括號內的數值小於 n,則表示該設備爲活動
設備,若數值大於等於n,則該設備爲備份設備,當
一個設備出現故障的時候,相應設備的方括號後將
被標以(F)。
3)配置Raid設備
接下來爲mdadm生成配置文件, mdadm的缺省
配置文件爲/etc/mdadm.conf,爲了方便陣列的平常
管理而設置的,爲了減小往後管理中沒必要要的麻
煩,仍是應該堅持把這一步作完。
在mdadm.conf文件中要包含兩種類型的行:一
種是以DEVICE 開頭的行,它指明在陣列中的設備
列表;另外一種是以ARRAY 開頭的行,它詳細地說
明瞭陣列的名稱、模式、陣列中活動設備的數目以
及設備的UUID 號。
(4)生成文件系統
建立文件系統並掛接(mount)使用。Raid5已
經啓動並處於運行狀態,如今要作的就是在其上創
建一個文件系統,使用mkfs命令,文件系統類型爲
ext3。命令以下:
# mkfs -t ext3 /dev/md0 //以ext3文件系統格式
化Raid5設備
當新的文件系統生成以後,就能夠將/dev/md0
掛接到指定的目錄了。命令以下:
# mount /dev/md0 /ftp //掛接/dev/md0設備到/
ftp目錄
爲了讓系統在啓動時自動將/dev/md0掛接到/
ftp,還須要修改/etc/fstab文件,添加以下內容:
/dev/md0 /ftp ext3 defaults 0 0
這樣在系統從新啓動後, Raid5設備/dev/md0將
被自動掛接到/ftp目錄中,咱們對目錄/ftp的操做
實際就是對Raid5設備/dev/md0的操做。
經過以上步驟,完成了在Linux 系統下建立軟
件Raid的配置過程,再將使用Linux提供的vsftpd
服務器,建立一個具備不一樣功能權限的FTP 服務器
用戶,並在/ftp目錄中創建備份系統目錄結構,以
實現備份服務器應具有的所有功能。
1.2 FTP服務器及備份目錄結構的設置
設定3 個不一樣的用戶權限:upload 用戶,用於
上傳數據; download用戶,用於下載數據;admin用
戶,做爲管理員。爲了有效地保護系統安全,這些
用戶都不能登陸系統,而且用FTP 鏈接時鎖定在自
己的根目錄中不能進入系統文件夾。
建立FTP 用戶的命令以下:
(1) vi logins.txt
1>upload
2>upload (注:本行的「upload」爲「upload」
用戶的密碼)
3>download
4>download
5>admin
6>admin
此文本文件的格式是單數行爲用戶名,偶數行
爲密碼。
(2) db_load -T -t hash -f logins.txt /etc/vsftpd_log-
in.db
(3) chmod 600 /etc/vsftpd_login.db
(4) useradd -d /ftp virtual ; chmod 700 /ftp
(5)修改FTP 配置文件:
在/etc/vsftpd.conf文件中插入下面的配置語句
Anonymous_enable=NO(禁止匿名用戶)
guest_enable=YES(啓用虛擬用戶)
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_username=virtual (將虛擬用戶映射爲本
地virtual用戶)
pam_service_name=vsftpd.pam(指定PAM配置
文件爲在/etc/pam.d/下的vsftpd)
user_config_dir=/etc/vsftpd_user_conf (指定不
同虛擬用戶配置文件的存放路徑)
保存退出
(6) cp /usr/share/doc/vsftpd-2.0.1/EXAMPLE/
VIRTUAL_USRES/vsftpd.pam /etc/pam.d/
(7) mkdir /etc/vsftpd_user_conf
(8)開放不一樣用戶的不一樣權限
echo "anon_world_readable_only=NO">/etc/
vsftpd_user_conf/download (開放 download用戶的
下載權限—只能下載;注意這個地方不要寫成YES,
不然將不能列出文件和目錄)
cp /etc/vsftpd_user_conf/download /etc/
vsftpd_user_conf/upload
vi /etc/vsftpd_user_conf/upload, 添加下列行
write_enable=YES (增長寫權限)
anon_upload_enable=YES(增長上傳權限)
anon_world_readable_only=YES (禁止列出文件
和目錄)
anno_other_write_enable=YES (增長用戶的刪
除/ 重命名的權限)
cp /etc/vsftpd_user_conf/upload /etc/vsftpd_user_
conf/admin
修改一行:
anon_world_readable_only=NO
從新啓動vsftpd服務器,就可使用以上建立
的3 個功能不一樣的用戶來實現其各自不一樣的功能。
在/ftp目錄中創建備份系統目錄樹結構。 將在
/ftp 目錄中以車站電報碼爲各車站數據備份一級目
錄,在一級目錄下再依次創建相關係統的備份目
錄,這樣室的數據將被異地備份到vsftpd服務器
中的相關備份目錄中,目錄結構圖如圖1。
2 部署各應用系統的備份策略
略
本文經過使用Linux系統提供的FTP服務器,結 合Linux系統提供的軟Raid技術,部署了異地災難數據備份應用,對一線應用系統的 實時數據進行異地備份,有力的保證了生產系 統計算機在徹底崩潰後實時數據的有效恢復。