一種提高hdfs文件傳輸安全性和讀取效率的方法
【專利摘要】本發(fā)明提出一種提高HDFS文件傳輸安全性和讀取效率的方法。本發(fā)明首先通過名稱節(jié)點為將要存儲的文件選擇的合適的塊進行存放,在塊存儲于數(shù)據(jù)節(jié)點后,對塊文件及其備份進行多次隨機線性網(wǎng)絡編碼。讀取文件時,同時從多個塊文件中讀出字符,并進行解碼,還原出原始文件。在整個文件傳輸和存取過程中,編碼部分由名稱節(jié)點負責,解碼部分在客戶端完成,信道中不會出現(xiàn)未加密的原始數(shù)據(jù),同時,由于從多個節(jié)點同時獲取數(shù)據(jù),提高了文件的讀取效率。
【專利說明】一種提高HDFS文件傳輸安全性和讀取效率的方法
【技術領域】
[0001]本發(fā)明基于HDFS,提出了一種增強文件傳輸過程中的安全性,以及提高文件讀取效率的方法。
【背景技術】
[0002]由Apache 基金會所開發(fā)的 HDFS (Hadoop Distributed File System)在面對海量文件存儲問題的處理時,相較于一般的存儲方式具有明顯優(yōu)勢。然而在云計算越來越普及的今天,用戶將自己的私人數(shù)據(jù)大量存放在云端,對于絕大部分的用戶而言,他們考慮的不再僅僅是需要這些數(shù)據(jù)時是否可以方便快捷的得到,與之相對應的,他們將更加關注于自己數(shù)據(jù)的存放是否安全。目前針對數(shù)據(jù)加密的幾種方法中,都是以犧牲系統(tǒng)存讀取文件效率為代價,并沒有同時加強文件安全性和讀取效率的有效方法。舉例說明,F(xiàn)acebook作為現(xiàn)今全球最大的社交網(wǎng)站,每天將處理27億次Like按鈕的點擊,有3億張圖片被上傳,吸收逾500TB的新數(shù)據(jù)。這些數(shù)據(jù)中,有可能是用戶的留言,或者心情狀態(tài),也可能是一張照片或者一段視頻,其中很多都是用戶不愿公開或者半公開的內容,這就要求公司在存儲這些數(shù)據(jù)時既要保證不泄露用戶的個人隱私,又要保證用戶在任意時刻想要查找它們時可以很快得到,這無疑是一項巨大的挑戰(zhàn)。本文在HDFS模型的基礎上,提出了一種采用網(wǎng)絡編碼和多節(jié)點讀取技術以增強文件傳輸過程中的安全性和提高文件讀取效率的方法,即利用隨機線性網(wǎng)絡編碼對存儲文件進行加密,在讀取文件時,同時從多個加密后的文件塊中讀取字符進行解碼。
【發(fā)明內容】
[0003]針對現(xiàn)有技術中存在的問題,本發(fā)明在HDFS架構的基礎上,采用隨機線性網(wǎng)絡編碼和多節(jié)點讀取的方法,在云計算平臺上建立了一套安全性好、解碼成本低、讀取效率高的分布式文件存儲系統(tǒng)。
[0004]本發(fā)明的發(fā)明目的是:在提高文件讀取效率的基礎上,能夠保證用戶的私人數(shù)據(jù)不在文件傳輸或者存儲的過程中被非法獲取。主要應用于云存儲、網(wǎng)盤等應用。
[0005]為了實現(xiàn)上述目的,本發(fā)明的技術方案為:一種提高HDFS文件傳輸安全性和讀取效率的方法,本方法及系統(tǒng)主要由四個主要步驟組成。
[0006]第一個步驟為文件存儲階段。在這一階段中,名稱節(jié)點(Namenode)根據(jù)客戶端發(fā)出的儲存文件請求,選取合適的塊(block)儲存文件,并建立從文件到塊和從塊到文件的映射關系,這些映射關系將作為元數(shù)據(jù)(Metadata)的一部分被存儲在名稱節(jié)點中,以方便名稱節(jié)點可以快速響應用戶對于某個文件的查找。
[0007]第二個步驟為編碼塊文件階段。在這一階段中,名稱節(jié)點對存儲在塊中的文件進行隨機線性網(wǎng)絡編碼,并將編碼后的文件存儲在數(shù)據(jù)節(jié)點(Datanode)中。隨機線性網(wǎng)絡編碼是一種簡單有效的網(wǎng)絡編碼方式,常用于對網(wǎng)絡數(shù)據(jù)的加密算法中,具有編碼成本低、解碼成功率高、可容錯性強等特點。隨機線性網(wǎng)絡編碼是一種文件加密方式,非用戶本人即使使用非正常手段得到了存儲在數(shù)據(jù)節(jié)點中的塊文件,在不知道編碼方式,無法得到編碼系數(shù)的情況下,是無法通過解碼的方法還原出原始文件的,由此保證了文件存儲的安全性。名稱節(jié)點首先選取編碼系數(shù)n(同時可以得到η個二進制表示的編碼因子&1、a2、a^an),并選擇最小編碼單元。由編碼長度決定每次從塊文件中讀取的字符串長度。假設η行待編碼的字符串為Vbylvbn,則該編碼單元中,第一行至最后一行的編碼結果可以表示為:
【權利要求】
1.一種提高HDFS文件傳輸安全性和讀取效率的方法,其特征在于,包含以下步驟:步驟一、在存儲操作之前,名稱節(jié)點對將要存儲的文件進行篩選,保留單個文件大小小于62MB的文件作為有效文件,超過62MB的文件按照一般的文件方式進行存儲;名稱節(jié)點為每個有效文件選取合適的塊儲存,并建立從文件到塊和從塊到文件的映射關系,這些映射關系將作為元數(shù)據(jù)的一部分被存儲在名稱節(jié)點中; 步驟二、對存儲在塊中的文件進行隨機線性網(wǎng)絡編碼,將編碼后的文件存儲在數(shù)據(jù)節(jié)占中.1 ? 步驟三、名稱節(jié)點對已經(jīng)過編碼的塊文件再次進行隨機線性網(wǎng)絡編碼,編碼結果作為塊文件的第一個備份保存在數(shù)據(jù)節(jié)點中,位置為原始的HDFS系統(tǒng)中塊文件的第一個備份的位置;名稱節(jié)點對已經(jīng)過二次編碼的塊文件進行第三次隨機線性網(wǎng)絡編碼,編碼結果作為塊文件的第二個備份保存在數(shù)據(jù)節(jié)點中,位置為原始的HDFS系統(tǒng)中塊文件的第二個備份的位置;如果增加備份文件的數(shù)量,由上述方法類推可得; 步驟四、當收到來自客戶端讀取文件的請求后,名稱節(jié)點根據(jù)元數(shù)據(jù)中塊到文件的映射關系找出客戶端需要的文件和備份文件,客戶端每次同時從多個塊文件中讀取定長的字符放入解碼矩陣中,解出原始文件;由于隨機線性網(wǎng)絡編碼解碼方法的特殊性,從不同的備份中同時讀取文件時,只 要保證讀取的文件是由同一個塊文件經(jīng)的編碼得到(編碼次數(shù)可以不同),并在解碼時,對放入的字符做行列變換,每次舍去線性相關部分,總會得到一個滿秩矩陣,該矩陣中的內容即為原始文件。
【文檔編號】H04L29/08GK103986718SQ201410224697
【公開日】2014年8月13日 申請日期:2014年5月23日 優(yōu)先權日:2014年5月23日
【發(fā)明者】都思丹, 馬雁楠, 于耀, 周余 申請人:南京大學