亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FastDFS的數(shù)字媒體系統(tǒng)設(shè)計與實(shí)現(xiàn)技術(shù)研究

        2019-05-17 02:43:38張祥俊伍衛(wèi)國
        關(guān)鍵詞:備份客戶端集群

        張祥俊,伍衛(wèi)國

        (1.西安交通大學(xué) 軟件學(xué)院,陜西 西安 710000;2.西安交通大學(xué) 電信學(xué)院,陜西 西安 710000)

        0 引 言

        高性能計算機(jī)已跨入了E級計算時代,數(shù)字媒體產(chǎn)業(yè)作為信息技術(shù)和人文藝術(shù)結(jié)合的內(nèi)容創(chuàng)意產(chǎn)業(yè)已成為最活躍的高性能計算應(yīng)用之一,用戶眾多。數(shù)字媒體作品的制作中,計算機(jī)3D技術(shù)的作用愈加重要,3D建模和渲染成為全球電影、動漫工業(yè)界關(guān)注的核心技術(shù)[1]。動漫作品團(tuán)隊(duì)使用渲染農(nóng)場后處理好的數(shù)據(jù)需要存放在一個共享的平臺[1],而在此平臺上對數(shù)據(jù)的安全有效管理成為目前需要考慮的問題。因此,在渲染流程處理中的數(shù)據(jù)量很大,眾包模式下的數(shù)據(jù)安全性、可靠性、高效存儲、便捷管理是一個問題,為了節(jié)約成本,使用統(tǒng)一的開放平臺接口處理渲染數(shù)據(jù)的問題也亟待解決。

        FastDFS是一種分布式存儲系統(tǒng),特點(diǎn)在于以中小文件為載體[2],同時配合NGINX,兩者作為圖片服務(wù)器提供對應(yīng)的在線服務(wù),客戶端使用API讀寫文件,基本解決了大容量存儲的問題,并且這套高性能的文件服務(wù)器集群可以提供文件上傳、下載等操作。雖然FastDFS能滿足高性能的存儲,但是針對渲染流程中海量媒體的管理需求,還沒有辦法完全達(dá)到。首先,F(xiàn)astDFS不支持?jǐn)帱c(diǎn)續(xù)傳,在大文件上傳時,一般采用切片上傳形式;第二,F(xiàn)astDFS對文件的上傳版本沒有控制,客戶端上傳的文件都保存在服務(wù)器中,沒有進(jìn)行版本化的管理;第三,完成一個數(shù)字產(chǎn)品所需要的數(shù)據(jù)量很大,同時資產(chǎn)數(shù)據(jù)的個數(shù)也很多,為了能夠方便管理,需要有每個客戶所上傳的目錄分級,而FastDFS不能完成這一點(diǎn);第四,近年來,文創(chuàng)眾包走進(jìn)了大眾視野,在此新制作模式下,多個制作團(tuán)隊(duì)之間需要資源共享與權(quán)限控制,顯然當(dāng)前的FastDFS無法滿足這種多租戶的存儲即服務(wù)的需求。因此希望可以通過容器技術(shù)Docker支持多租戶,實(shí)現(xiàn)用戶環(huán)境隔離;第五,在數(shù)據(jù)安全方面,自動化恢復(fù)機(jī)制不完善:如果storage的某塊磁盤故障發(fā)生,且故障時間較長,只能手動恢復(fù)原有數(shù)據(jù)并且換磁盤;需要預(yù)先準(zhǔn)備好熱備磁盤,否則很難立即向外提供正常服務(wù)。不能自動化恢復(fù)會增加管理員的運(yùn)維成本。國內(nèi)的FastDFS與Google FS相似,具有存儲小文件優(yōu)化和簡潔的特性,比較mogileFS,維護(hù)和使用體驗(yàn)更好的開源分布式文件系統(tǒng)[3]。主要用于大中網(wǎng)站,為文件上傳和下載提供在線服務(wù)。所以在負(fù)載均衡、動態(tài)擴(kuò)容等方面都支持得比較好,但是截止目前,運(yùn)用FastDFS進(jìn)行存儲,并在其基礎(chǔ)上管理媒體資產(chǎn)的系統(tǒng)還未出現(xiàn)典型代表。

        基于此,文中提出了一種利用容器化技術(shù)在給定時間進(jìn)行數(shù)據(jù)同步的機(jī)制,保證整個存儲集群滿足高性能存儲的數(shù)據(jù)可靠性要求,同時由于容器的多租戶技術(shù)[4],具備了很好的隔離性。最后對其進(jìn)行實(shí)驗(yàn)驗(yàn)證和測試。

        1 系統(tǒng)基本結(jié)構(gòu)

        1.1 系統(tǒng)結(jié)構(gòu)

        海量媒體數(shù)據(jù)管理功能負(fù)責(zé)存儲傳輸海量場景數(shù)據(jù),由tracker集群和存儲集群組成。tracker集群負(fù)責(zé)管理數(shù)據(jù)的元數(shù)據(jù)信息,具有文件分塊/多副本/版本控制等功能,媒體作品創(chuàng)作端讀寫文件時首先和tracker集群通信完成元數(shù)據(jù)操作,隨后將數(shù)據(jù)通過restful API對象接口傳輸?shù)酱鎯?。具體使用場景如圖1所示。

        圖1 數(shù)字媒體資產(chǎn)在線管理系統(tǒng)結(jié)構(gòu)

        1.2 FastDFS分布式文件系統(tǒng)

        1.2.1 分布式文件系統(tǒng)概念

        Distributed file system(DFS)是指多臺計算機(jī)協(xié)同合作,從而完成文件存儲、大數(shù)據(jù)計算等目標(biāo)?;ヂ?lián)網(wǎng)上的所有資源,最終都會以文件的形式存放在具體的物理機(jī)器的存儲設(shè)備上。存儲、讀取和管理這些海量的文件依靠單一的機(jī)器無疑是不行的,所以分布式文件系統(tǒng)進(jìn)入人們的視野。

        1.2.2 FastDFS的系統(tǒng)架構(gòu)

        FastDFS組成包括跟蹤服務(wù)器(tracker server)、存儲服務(wù)器(storage server)和客戶端(client)[5]。tracker的工作職責(zé)首要是調(diào)度,在整個過程中維持storage均衡;第二,作為所有storage server和group的管理者,需要連接每個storage,并得到它們所屬group信息,同時獲取其周期性心跳。得到心跳信息后,tracker負(fù)責(zé)建立group與storage serverlist的映射。

        storage的責(zé)任是提供容量信息和冗余備份;storage server按group分組,同組內(nèi)可以有多臺storage,其中存儲的文件有同步備份。按group為單位存儲,可以進(jìn)行隔離應(yīng)用、服務(wù)器負(fù)載均衡、獲取到副本數(shù)等。

        client主要是客戶端上傳下載文件等數(shù)據(jù)的服務(wù)器,即在client上部署自身開發(fā)的項(xiàng)目。安裝Nginx后,用戶發(fā)送的請求可以被分發(fā)到不同的tracker上。

        (1)FastDFS的存儲策略。

        FastDFS具有大容量存儲的特性,其原因是存儲節(jié)點(diǎn)采用了分組的組織方式。存儲系統(tǒng)中包含一個或多個組,組與組之間的文件獨(dú)立,整個存儲系統(tǒng)中的文件容量是將所有組的文件容量累加起來得到的。一個組可以由一臺或多臺storage組成[6]。當(dāng)組中增加storage時,系統(tǒng)自動完成同步組內(nèi)已有的文件,同步結(jié)束后,新增服務(wù)器會被系統(tǒng)切換上線,并對外提供服務(wù)。如果發(fā)生存儲空間不足或快要使用完的情況,動態(tài)添加組即可擴(kuò)大存儲系統(tǒng)的容量[7]。

        (2)FastDFS的上傳過程。

        使用者可以通過upload、download、appendfile、deletfile等基本文件訪問接口結(jié)合FastDFS進(jìn)行操作,這些接口是以客戶端庫的方式提供給用戶的。首先客戶端發(fā)送上傳文件的請求給tracker,tracker會分配一個可以存儲文件的group,之后再繼續(xù)分配合適的storage server。確定storage server后,client繼而發(fā)送寫文件請求,storage得到該消息后,將會為文件分配一個數(shù)據(jù)存儲目錄[8]。同時文件將得到fileid以作區(qū)分,最后生成存儲文件的文件名信息。

        (3)FastDFS的文件下載。

        client端上傳文件成功后,通過storage生成唯一文件名,調(diào)用download方法訪問到該文件并下載。在下載時client可以選擇任意tracker server。client發(fā)送download請求給某個tracker,請求信息中包含文件全名,tracker從文件全名中解析出文件的Id、所屬group、擴(kuò)展名等信息,之后選擇一個storage讀請求,提供下載服務(wù)[9]。

        2 容器環(huán)境下的FastDFS器群組織與配置

        2.1 環(huán)境的配置

        docker pull zxj2017/fastdfs:v1

        docker network create --subnet=172.18.0.0/16 fastDfsnet

        docker run -d --name trackerA-h Server-A --net=fastDfsnet --ip 172.18.0.10--add-host="storageA :172.18.0.12" --add-host="storageB :172.18.0.13"zxj2017/fastdfs:v1 sh tracker.sh

        docker run -d --name trackerB -h Server-B --net=fastDfsnet --ip 172.18.0.11--add-host="storageA :172.18.0.12" --add-host="storageB :172.18.0.13" zxj2017/fastdfs:v1 sh tracker.sh

        docker run -d --name storageA --net=fastDfsnet --ip 172.18.0.12 -h storageA -e TRACKER_IP=172.18.0.10:22122 -e GROUP_NAME=group1 zxj2017/fastdfs:v1 sh storage.sh

        docker run -d --name storageB --net=fastDfsnet --ip 172.18.0.13-h storageB-e TRACKER_IP=172.18.0.11.202:22122-e GROUP_NAME=group2zxj2017/fastdfs:v1 sh storage.sh

        環(huán)境測試:

        進(jìn)入trackerA,上傳文件 查看結(jié)果:docker exec -it trackerA /bin/bash

        vi /etc/fdfs/client.conf

        tracker_server= Server-A:22122

        vi test.txt

        hellofastDFS

        /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.txt

        進(jìn)入storageA 查看結(jié)果:docker exec -it storageA/bin/bash

        此時表明FastDFS的容器已經(jīng)啟動成功。

        2.2 FastDFS的可靠性解決方案

        環(huán)境說明:工作服務(wù)器A:IP地址 172.18.0.10,操作系統(tǒng)Ubuntu,已建立用戶tom;備份服務(wù)器B:IP地址 172.18.0.11,操作系統(tǒng)Ubuntu,已建立用戶jack(uid 503,gid 503)。

        實(shí)現(xiàn)目的:每天早上3點(diǎn),將A服務(wù)器上的用戶目錄/home,自動備份到B服務(wù)器的/home/jack/backup-A下,備份增量進(jìn)行[10],不需要任何用戶交互。

        配置步驟:

        配置備份服務(wù)器B。

        (1)[root@Server-B ~]# rpm -qa| grep rsync #查看是否有rsync包

        rsync-2.6.8-3.1

        以上輸出說明rsync已經(jīng)裝好了,保證/etc/services有下面的行。

        rsync 873/tcp *rsync

        rsync 873/udp *rsync

        (2)rsync的rpm包本身沒有附帶rsyncd的配置文件,需要手動創(chuàng)建(/etc/rsyncd.conf)。

        [root@Server-B~]#vi /etc/rsyncd.conf

        Log file=/var/log/rsyncd.log

        [local0]

        Comment=back from Server-A

        Path=/home/jack/backup-A

        Hosts allow=172.18.0.10 127.0.0.1

        Read only=false

        uid=503 #保證在服務(wù)器B的備份操作以jack這個用戶進(jìn)行

        gid=503

        (3)修改/etc/xinetd.d/rsync,打開rsync服務(wù)。

        [root@Server-B ~]# vi /etc/xinetd.d/rsync

        (4)開啟rsyncd服務(wù),并設(shè)置系統(tǒng)啟動時加載rsync服務(wù)。

        [root@Server-B ~]# /usr/bin/rsync --daemon

        (5)檢驗(yàn)rsync服務(wù)是否啟動成功。

        [root@Server-B ~]#rsync localhost::

        有如下內(nèi)容表示已經(jīng)成功啟動。

        (6)配置ssh的非交互式登錄。

        >>在服務(wù)器A上生成一對密鑰(以root的身份執(zhí)行)[root@Server-B ~]# ssh-keygen -t rsa

        >>遠(yuǎn)程登錄到備份服務(wù)器B上并且創(chuàng)建.ssh目錄

        [root@Server-A ~]#ssh jack@172.18.0.11

        [jack@Server-B ~]$ mkdir .ssh;chmod 0700 .ssh

        >>在A機(jī)上執(zhí)行遠(yuǎn)程拷貝公鑰到B機(jī):

        [root@Server-A ~]#scp .ssh/id-rsa.pub root@172.18.0.11: /home/jack/.ssh/authorized_keys

        這樣,無交互的ssh登錄就完成了。

        (7)編制備份腳本。

        在服務(wù)器A上編寫一個備份腳本,放置在/home/tom/public_scripts下,名為backup.sh。

        #!/bin/sh

        TARGET_DIR=backup-A

        for SOURCE_DIR in “/home”

        do

        echo “Backing up $SOURCE_DIR …”

        rsyn-au-delete $SOURCE_DIR jack@192.168.1.87:/home/jack/$TARGET_DIR

        done

        [root@Server-A public_scripts]# chmod 755 backup.sh

        該腳本權(quán)限設(shè)置為755,以便其他用戶可訪問到。

        (8)修改計劃任務(wù)。

        在服務(wù)器A上,用root身份執(zhí)行以下命令,可以設(shè)定什么時候執(zhí)行腳本

        [root@Server-A ~]# crontab -e

        3* * * * /home/tom/public_scripts/backup.sh

        同樣的操作在storageA和storageB之間將它們的目錄數(shù)據(jù)采用定時同步,然后對節(jié)點(diǎn)的同步進(jìn)行備份。

        3 實(shí)驗(yàn)測試

        3.1 測試環(huán)境

        測試節(jié)點(diǎn)配置見表1。

        表1 測試節(jié)點(diǎn)配置

        續(xù)表1

        該系統(tǒng)的測試使用FastDFS tracker服務(wù)器,FastDFS storage服務(wù)器,Mysql服務(wù)器與一臺終端進(jìn)行,安裝完成后,可通過上傳、下載的命令行進(jìn)行是否安裝成功的測試。圖2是測試環(huán)境的網(wǎng)絡(luò)拓?fù)洹?/p>

        圖2 測試環(huán)境網(wǎng)絡(luò)拓?fù)?/p>

        由圖2可知,因?yàn)榉?wù)器在FastDFS中擔(dān)任的角色不同,所以配置啟動的服務(wù)也不同。首先,在服務(wù)器172.18.0.10上對應(yīng)配置tracker,而在存儲服務(wù)器的group1對應(yīng)的172.18.0.12(storageA)和172.18.0.13(storageB)、group2對應(yīng)的172.18.0.14(storageC)和172.18.0.15(storageD)上配置storage,分成2組。按要求,tracker、storage服務(wù)器的配置文件都需要修改后方可運(yùn)行。根據(jù)上節(jié)提出的同步目錄組問題的設(shè)計[11],可知172.18.0.14(storageC)和172.18.0.15(storageD)中還必須配置rsync服務(wù)。最后配置啟動數(shù)據(jù)庫,包含3臺服務(wù)器。按照測試環(huán)境配置中劃分的角色,修改配置文件/var/lib/mysql-cluster/config.ini和/etc/my.cnf。由于條件限制,數(shù)據(jù)節(jié)點(diǎn)和訪問節(jié)點(diǎn)安裝在同一服務(wù)器上,先啟動管理節(jié)點(diǎn)192.168.0.243,再啟動數(shù)據(jù)節(jié)點(diǎn)192.168.0.241,192.168.0.242。

        3.2 可靠性測試

        由部署的測試環(huán)境可知,F(xiàn)astDFS組內(nèi)一般有多臺存儲服務(wù)器,組內(nèi)設(shè)計在group2對應(yīng)的172.18.0.14和172.18.0.15上配置storage,通過將其中一臺存儲服務(wù)器172.18.0.14以及數(shù)據(jù)庫集群節(jié)點(diǎn)172.19.0.12關(guān)閉,模擬出分組中一臺存儲服務(wù)器及數(shù)據(jù)庫集群宕機(jī)的情況,如圖3所示。

        第二步登入系統(tǒng)上傳一個文件,文件上傳成功后保存在FastDFS中的key是:

        group1/M00/00/00/ rBIADFsMB9-AQUvBAAAA DT_u2ZM252.txt。由圖4、圖5可知,當(dāng)同組內(nèi)的某臺存儲服務(wù)器宕機(jī)時,集群對外提供的服務(wù)穩(wěn)定,并且可將上傳的文件同步到在分組中另外一臺存儲服務(wù)器172.18.0.15上。

        由測試結(jié)果可知,當(dāng)172.18.0.12宕機(jī)時,開啟172.18.0.13服務(wù)器,可查找到已經(jīng)同步的文件,集群在某些節(jié)點(diǎn)宕機(jī)的情況仍可工作,因此系統(tǒng)具備較高的可靠性。

        4 結(jié)束語

        文中提出一種在FastDFS基礎(chǔ)上增加新功能的解決方案,以滿足平臺對海量媒體存儲要求的技術(shù),通過容器技術(shù)對存儲組鏡像進(jìn)行隔離[12-14],結(jié)合nginx模塊的無縫銜接,跟蹤節(jié)點(diǎn)和存儲節(jié)點(diǎn)可以靈活分配。針對FastDFS在數(shù)據(jù)恢復(fù)方面的缺點(diǎn),提出一種在不同節(jié)點(diǎn)上的同步策略,保證了存儲系統(tǒng)的可靠性和高效性。實(shí)驗(yàn)結(jié)果證明了該方法在高性能計算環(huán)境下的可靠性和隔離性[15],該技術(shù)提高了數(shù)字媒體系統(tǒng)在存儲方面的效率和靈活性。但是依然有一些不足,比如對于上層的應(yīng)用程序還可以結(jié)合容器編排技術(shù)對其進(jìn)行微服務(wù)式的管理,這樣可以大大提高整個系統(tǒng)的可靠性。另外,同步策略在同步數(shù)據(jù)時會給系統(tǒng)的性能帶來一些影響,這些問題還需要在今后的研究中繼續(xù)解決。

        猜你喜歡
        備份客戶端集群
        “備份”25年:鄧清明圓夢
        海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
        一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
        電子制作(2018年11期)2018-08-04 03:25:40
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        勤快又呆萌的集群機(jī)器人
        淺析數(shù)據(jù)的備份策略
        科技視界(2015年6期)2015-08-15 00:54:11
        出版原圖數(shù)據(jù)庫遷移與備份恢復(fù)
        搡老熟女中国老太| av一区二区在线网站| 国产亚洲av无码av男人的天堂| 午夜色大片在线观看| 亚洲精品日韩自慰喷水白浆| 国产午夜精品久久久久九九| 日本av不卡一区二区三区| 97在线视频人妻无码| 午夜成人理论无码电影在线播放| 亚洲国产A∨无码影院| 激情网色图区蜜桃av| 精品亚洲一区二区区别在线观看| 琪琪的色原网站| 无码国产精品一区二区免费97| 美女被插到高潮嗷嗷叫| 丝袜美腿在线观看一区| 精品欧洲av无码一区二区| 永久国产盗摄一区二区色欲| 一区二区三区在线日本| 激情综合五月开心婷婷| 55夜色66夜色国产精品视频| 国产91色在线|亚洲| 长腿丝袜在线观看国产| 熟女体下毛荫荫黑森林| 中文字幕一区二区人妻| 午夜影院91| 国产在线精品观看一区二区三区| 国产精品 亚洲 无码 在线| 无码视频一区二区三区在线观看| 中文字幕乱码av在线| 亚洲一区二区日韩专区| 99国产精品无码| 国产狂喷潮在线观看| 国产精品一区二区暴白浆| 99久久国产一区二区三区| 久久久亚洲熟妇熟女av| 性生交大全免费看| 国产激情一区二区三区成人免费| 成人做爰黄片视频蘑菇视频| 亚洲国产精品无码久久98| 国产一及毛片|