<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在Linux中創(chuàng)建一個云端加密文件系統(tǒng)

          在Linux中創(chuàng)建一個云端加密文件系統(tǒng)

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          Amazon S3 和 Google Cloud Storage 之類的商業(yè)云存儲服務(wù)以能承受的價格提供了高可用性、可擴展、無限容量的對象存儲服務(wù)。為了加速這些云產(chǎn)品的廣泛采用,這些提供商為他們的產(chǎn)品通過明確的 API 和 SDK 培養(yǎng)了一個良好的開發(fā)者生態(tài)系統(tǒng)。而基于云的便是這些活躍的開發(fā)者社區(qū)中的典型產(chǎn)品,已經(jīng)有了好幾個開源的實現(xiàn)。

          本文引用地址:http://www.ex-cimer.com/article/201609/304232.htm

          S3QL 便是最流行的開源之一。它是一個基于 FUSE 的,提供了好幾個商業(yè)或開源的云存儲后端,比如 Amazon S3、Google Cloud Storage、Rackspace CloudFiles,還有 OpenStack。作為一個功能完整的文件系統(tǒng),S3QL 擁有不少強大的功能:最大 2T 的文件大小、壓縮、UNIX 屬性、加密、基于寫入時復(fù)制的快照、不可變樹、重復(fù)數(shù)據(jù)刪除,以及軟、硬鏈接支持等等。寫入 S3QL 文件系統(tǒng)任何數(shù)據(jù)都將首先被本地壓縮、加密,之后才會傳輸?shù)皆坪蠖?。當你試圖從 S3QL 文件系統(tǒng)中取出內(nèi)容的時候,如果它們不在本地緩存中,相應(yīng)的對象會從下載回來,然后再即時地解密、解壓縮。

          需要明確的是,S3QL 的確也有它的限制。比如,你不能把同一個 S3FS 文件系統(tǒng)在幾個不同的電腦上同時掛載,只能有一臺電腦同時訪問它。另外,ACL(訪問控制列表)也并沒有被支持。

          在這篇教程中,我將會描述“如何基于 Amazon S3 用 S3QL 配置一個加密文件系統(tǒng)”。作為一個使用范例,我還會說明如何在掛載的 S3QL 文件系統(tǒng)上運行 rsync 備份工具。

          準備工作

          本教程首先需要你創(chuàng)建一個 Amazon AWS 帳號(注冊是免費的,但是需要一張有效的信用卡)。

          然后 創(chuàng)建一個 AWS access key(access key ID 和 secret access key),S3QL 使用這些信息來訪問你的 AWS 帳號。

          之后通過 AWS 管理面板訪問 AWS S3,并為 S3QL 創(chuàng)建一個新的空 bucket。

          為最佳性能考慮,請選擇一個地理上距離你最近的區(qū)域。

          上安裝 S3QL

          在大多數(shù) 發(fā)行版中都有預(yù)先編譯好的 S3QL 軟件包。

          對于 Debian、Ubuntu 或 Mint:

          $ sudo apt-get install s3ql

          對于 Fedora:

          $ sudo yum install s3ql

          對于 Arch Linux,使用 AUR。

          首次配置 S3QL

          在 ~/.s3ql 目錄中創(chuàng)建 autoinfo2 文件,它是 S3QL 的一個默認的配置文件。這個文件里的信息包括必須的 AWS access key,S3 bucket 名,以及加密口令。這個加密口令將被用來加密一個隨機生成的主密鑰,而主密鑰將被用來實際地加密 S3QL 文件系統(tǒng)數(shù)據(jù)。

          $ mkdir ~/.s3ql$ vi ~/.s3ql/authinfo2

          [s3]storage-url: s3://[bucket-name]backend-login: [your-access-key-id]backend-password: [your-secret-access-key]fs-passphrase: [your-encryption-passphrase]

          指定的 AWS S3 bucket 需要預(yù)先通過 AWS 管理面板來創(chuàng)建。

          為了安全起見,讓 authinfo2 文件僅對你可訪問。

          $ chmod 600 ~/.s3ql/authinfo2

          創(chuàng)建 S3QL 文件系統(tǒng)

          現(xiàn)在你已經(jīng)準備好可以在 AWS S3 上創(chuàng)建一個 S3QL 文件系統(tǒng)了。

          使用 mkfs.s3ql 工具來創(chuàng)建一個新的 S3QL 文件系統(tǒng)。這個命令中的 bucket 名應(yīng)該與 authinfo2 文件中所指定的相符。使用“--ssl”參數(shù)將強制使用 SSL 連接到后端存儲服務(wù)器。默認情況下,mkfs.s3ql 命令會在 S3QL 文件系統(tǒng)中啟用壓縮和加密。

          $ mkfs.s3ql s3://[bucket-name] --ssl

          你會被要求輸入一個加密口令。請輸入你在 ~/.s3ql/autoinfo2 中通過“fs-passphrase”指定的那個口令。

          如果一個新文件系統(tǒng)被成功創(chuàng)建,你將會看到這樣的輸出:

          掛載 S3QL 文件系統(tǒng)

          當你創(chuàng)建了一個 S3QL 文件系統(tǒng)之后,下一步便是要掛載它。

          首先創(chuàng)建一個本地的掛載點,然后使用 mount.s3ql 命令來掛載 S3QL 文件系統(tǒng)。

          $ mkdir ~/mnt_s3ql$ mount.s3ql s3://[bucket-name] ~/mnt_s3ql

          掛載一個 S3QL 文件系統(tǒng)不需要特權(quán)用戶,只要確定你對該掛載點有寫權(quán)限即可。

          視情況,你可以使用“--compress”參數(shù)來指定一個壓縮算法(如 lzma、bzip2、zlib)。在不指定的情況下,lzma 將被默認使用。注意如果你指定了一個自定義的壓縮算法,它將只會應(yīng)用到新創(chuàng)建的數(shù)據(jù)對象上,并不會影響已經(jīng)存在的數(shù)據(jù)對象。

          $ mount.s3ql --compress bzip2 s3://[bucket-name] ~/mnt_s3ql

          因為性能原因,S3QL 文件系統(tǒng)維護了一份本地文件緩存,里面包括了最近訪問的(部分或全部的)文件。你可以通過“--cachesize”和“--max-cache-entries”選項來自定義文件緩存的大小。

          如果想要除你以外的用戶訪問一個已掛載的 S3QL 文件系統(tǒng),請使用“--allow-other”選項。

          如果你想通過 NFS 導(dǎo)出已掛載的 S3QL 文件系統(tǒng)到其他機器,請使用“--nfs”選項。

          運行 mount.s3ql 之后,檢查 S3QL 文件系統(tǒng)是否被成功掛載了:

          $ df ~/mnt_s3ql$ mount | grep s3ql

          卸載 S3QL 文件系統(tǒng)

          想要安全地卸載一個(可能含有未提交數(shù)據(jù)的)S3QL 文件系統(tǒng),請使用 umount.s3ql 命令。它將會等待所有數(shù)據(jù)(包括本地文件系統(tǒng)緩存中的部分)成功傳輸?shù)胶蠖朔?wù)器。取決于等待寫的數(shù)據(jù)的多少,這個過程可能需要一些時間。


          上一頁 1 2 下一頁

          關(guān)鍵詞: Linux 云端 文件系統(tǒng)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();