Thứ năm, 03/04/2014 | 00:00 GMT+7

Cách thiết lập hệ thống tệp phân tán Tahoe-LAFS trên server Ubuntu 14.04

Tahoe-LAFS là một hệ thống file phân tán “ít quyền hạn nhất” có thể dễ dàng mở rộng quy mô để cung cấp một mạng lưu trữ nhận biết mạng mạnh mẽ. Với những lợi ích tương tự như những lợi ích mà cấu hình RAID đạt được ở cấp đĩa, Tahoe-LAFS tận dụng một mô hình tương tự để mã hóa và chia nhỏ file giữa nhiều server .

Trong hướng dẫn này, ta sẽ cài đặt hệ thống Tahoe-LAFS sử dụng ba version VPS Ubuntu 14.04. Điều này sẽ cho phép ta phân phối dữ liệu của bạn giữa 3 server riêng biệt, mang lại cho ta khả năng dự phòng và một group lưu trữ lớn hơn bất kỳ server đơn lẻ nào.

Cài đặt các thành phần Tahoe-LAFS

Kho lưu trữ Ubuntu 14.04 chứa version mới nhất của Tahoe-LAFS tại thời điểm viết bài này (1.10.0). Ta có thể sử dụng điều này để cài đặt các thành phần trên mỗi server của ta .

sudo apt-get update sudo apt-get install tahoe-lafs 

Thao tác này sẽ cài đặt gói python Tahoe-LAFS ở vị trí có thể truy cập hệ thống.

Để tách biệt cấu hình của ta , hãy tạo một user không có quyền đặc biệt để xử lý cấu hình Tahoe-LAFS của ta :

sudo adduser tahoe_user 

Chọn password cho user của bạn. Tiếp theo, ta sẽ chuyển đổi sang user mới cho phần còn lại của hướng dẫn:

su - tahoe_user 

Cấu hình trình giới thiệu để quản lý kết nối nút

Bước đầu tiên mà ta cần thực hiện trong việc cấu hình cụm của bạn là cài đặt “người giới thiệu”. Người giới thiệu chỉ đơn giản là một nút có chức năng như một trung tâm kết nối các client và các node lưu trữ.

Người giới thiệu (hoặc thành phần người giới thiệu nếu máy cũng chứa nút lưu trữ) không thực sự chuyển các file nào hoặc lưu trữ bất kỳ dữ liệu nào. Trách nhiệm duy nhất của nó là thu thập địa chỉ của các vị trí lưu trữ và cung cấp chúng cho các khách hàng yêu cầu quyền truy cập vào cụm. Dữ liệu thực tế không qua tay người giới thiệu.

Ta sẽ chỉ cần chạy qua bước này trên máy đầu tiên của bạn . Tất cả các server khác sẽ sử dụng cùng một người giới thiệu này để kết nối với cụm và khám phá lẫn nhau.

Để bắt đầu, ta có thể chạy lệnh Tahoe đầu tiên của bạn . Thao tác này sẽ khởi tạo trình giới thiệu Tahoe của ta trong một folder ẩn trong folder chính của ta có tên là .introducer

tahoe create-introducer ~/.introducer 

Thao tác này sẽ tạo folder và đưa một số file cấu hình vào bên trong. Ta sẽ không phải điều chỉnh cài đặt nào trong số này vì chúng khá cơ bản.

Để đưa người giới thiệu trực tuyến, ta chỉ cần yêu cầu Tahoe khởi động thành phần này:

tahoe start ~/.introducer 

STARTING '/home/tahoe_user/.introducer' 

Người giới thiệu của bạn hiện đã lên và bạn có thể bắt đầu tạo và kết nối các node lưu trữ của bạn với “lưới” này (tên của tập hợp các node hoạt động cùng nhau).

Nhưng trước tiên, ta cần extract một thông tin quan trọng từ người giới thiệu mới của ta . Đây là địa chỉ mà các node lưu trữ của ta có thể sử dụng để kết nối. Để tìm cái này, bạn có thể gõ lệnh sau:

cat ~/.introducer/private/introducer.furl 

pb://kvhp5ynrbaiqw4ye2iagu4s2bkgj3dqb@107.170.41.189:57972,10.128.1.228:57972,127.0.0.1:57972/ysslmcvu23f7opkxj4db5r5mdan3pj6m 

Đây là địa chỉ mạng mà ta cần để cấu hình các node lưu trữ của bạn , vì vậy hãy copy paste địa chỉ này vào nơi nào đó mà bạn sẽ có quyền truy cập sau này.

Cấu hình các node lưu trữ để giữ dữ liệu

Bây giờ ta đã cấu hình thành phần người giới thiệu và trực tuyến, ta cần bắt đầu tạo các thành phần lưu trữ của bạn để ta thực sự có một group lưu trữ có sẵn để ghi vào.

Trong môi trường production , có thể bạn cần có nút người giới thiệu của bạn trên một version VPS hoàn toàn riêng biệt với các đơn vị lưu trữ của bạn. Bạn cũng cần phân phối dữ liệu của bạn trên một group lớn hơn nhiều so với những gì ta sẽ trình bày. Tuy nhiên, đối với hướng dẫn này, ta sẽ có 3 nút lưu trữ, một trong số đó cũng có người giới thiệu của ta .

Trên mỗi server của bạn, hãy tạo một nút lưu trữ thông thường bằng lệnh :

tahoe create-node 

Điều này sẽ tạo ra cấu trúc folder chung tương tự như folder người giới thiệu của ta , nhưng với thông tin khác. Điều này được đặt trong ~/.tahoe theo mặc định.

Ta cần điều chỉnh file cấu hình trước khi có thể tiếp tục. Mở nó bằng editor :

nano ~/.tahoe/tahoe.cfg 

Đầu tiên, tạo một tên duy nhất cho mỗi nút. Điều này sẽ được sử dụng để xác định từng server và có thể cung cấp cho bạn manh mối về các vấn đề gỡ lỗi:

<pre>
nickname = <span class = “highlight”> node-name </span>
</pre>

Tiếp theo, ta sẽ phải điều chỉnh tham số web.port . Hiện tại, nó chỉ chấp nhận các kết nối từ máy tính local . Bạn có thể thay đổi nó thành 0.0.0.0 để cho phép kết nối từ tất cả các giao diện của bạn hoặc liên kết nó với địa chỉ IP cụ thể của bạn:

web.port = tcp:3456:interface=0.0.0.0 

Tiếp theo, ta cần phải tìm ra introducer.furl tham số. Ta cần sửa đổi điều này với bộ lông của người giới thiệu mà ta nhận được trong quá trình cấu hình người giới thiệu của ta . Nó trông giống như sau :

introducer.furl = pb://kvhp5ynrbaiqw4ye2iagu4s2bkgj3dqb@107.170.41.189:57972,10.128.1.228:57972,127.0.0.1:57972/ysslmcvu23f7opkxj4db5r5mdan3pj6m 

Các tham số tiếp theo mà ta cần điều chỉnh là các tham số đã comment như shares.needed , shares.happy , shares.total . Hãy đi sâu hơn một chút về ý nghĩa của các thông số này:

Thông số Chia sẻ nghĩa là gì?

Tham số shares.* Có lẽ là một số quyết cấu hình quan trọng nhất mà bạn sẽ phải thực hiện khi cài đặt hệ thống Tahoe-LAFS của bạn . Nó cấu hình lượng dự phòng bạn có và dung lượng mà dữ liệu sẽ chiếm.

Nói tóm lại, khi một file được tải lên, nó được chia thành "lượt chia sẻ". Mỗi lượt chia sẻ, khi được kết hợp với một số lượt chia sẻ khác, được dùng để tạo lại file .

Tham số shares.total cho biết chính xác số lượng chia sẻ được tạo khi file được tải lên. Theo mặc định, đây là "10".

shares.needed là số lượt chia sẻ cần thiết để tạo lại toàn bộ file . Theo mặc định, đây là "3". Vì vậy, nếu điều này được đặt thành “1”, bạn sẽ có dư thừa, nhưng sẽ có một bản sao hoàn chỉnh của file được tạo 10 lần.

Hai tham số này kết hợp để tạo policy chia sẻ cho client . Các giá trị mặc định quy định rằng khi một file được tải lên, nó sẽ được chia thành 10 phần khác nhau. Những chia sẻ này sẽ dư thừa để có thể sử dụng bất kỳ 3 chia sẻ nào trong số chúng để tạo lại file .

Điều này nghĩa là shares.needed / shares.total sẽ cung cấp cho ta số lượng chi phí cần thiết để lưu trữ dự phòng file khi nhân với kích thước file . Theo cách sắp xếp mặc định, các file của bạn sẽ chiếm dung lượng lưu trữ gấp khoảng 3,3 lần so với việc lưu file trên đĩa thông thường.

Điều này có vẻ hơi nhiều, nhưng bạn cũng phải nhận ra rằng bạn đang đạt được lợi ích khi mất bất kỳ 7 cổ phiếu nào trong số đó và vẫn có thể tạo lại một file hoàn chỉnh.

Tham số cuối cùng, shares.happy được sử dụng để cấu hình cách chia sẻ của bạn sẽ được phân phối giữa các server . Trong khi shares.neededshares.total thông số đối phó với “cổ phiếu”, các shares.happy tham số quy định cụ thể các server thực tế.

Điều này đặt số lượng server tối thiểu có sẵn để nhận bản sao của các lượt chia sẻ. Nếu ít hơn số lượng server khả dụng, quá trình tải lên sẽ không thành công. Điều này được sử dụng đảm bảo rằng dữ liệu được trải đều trên một lượng nút hợp lý. Theo mặc định, giá trị này được đặt thành “7”.

Vì ta chỉ có sẵn 3 nút, ta cần điều chỉnh một số thuộc tính này. Vì mọi server đều có thể chứa nhiều chia sẻ của cùng một file , nên thông số duy nhất ta thực sự cần điều chỉnh là shares.happy . Đây phải là số lượng server hoặc ít hơn.

Vì mục đích của ta , ta sẽ bỏ ghi chú tất cả những điều này và ta sẽ thay đổi shares.happy thành "3", tổng số server của ta :

<pre>
cổ phiếu.needed = 3
shared.happy = <span class = “highlight”> 3 </span>
shared.total = 10
</pre>

Đây là những điều tốt để trình diễn, nhưng bạn cần điều chỉnh chúng nhiều hơn tùy thuộc vào nhu cầu của bạn (bạn cần dự phòng rất cao, hay không gian đĩa có vấn đề nhiều hơn?).

Khi bạn hoàn tất việc chỉnh sửa file trên mỗi nút, bạn có thể bắt đầu mỗi nút lưu trữ bằng lệnh :

tahoe start 

Tương tác với giao diện web

Sau khi tất cả các node của bạn hoạt động, bạn có thể truy cập hệ thống file Tahoe-LAFS bằng cách duyệt đến bất kỳ version VPS nào của bạn tại cổng 3456 :

<pre>
http: // <span class = “highlight”> your_ip </span>: 3456
</pre>

Bạn sẽ nhận được một trang web hiển thị tất cả các node và giao diện cho lưới của bạn:

Trang chính của Tahoe-LAFS

Đây là tổng quan về các node của bạn. Vì Tahoe-LAFS không giả định bạn đang chạy trên phần cứng của riêng mình và không cho rằng bạn là người điều hành duy nhất, nên nó không thực sự bao gồm một giao diện để truy vấn dữ liệu theo tên. Nó giả định chủ sở hữu sẽ có thông tin để truy xuất file được cung cấp khi tải lên.

Hãy thử sử dụng giao diện một chút để chứng minh.

Đầu tiên, hãy tạo một folder bằng cách nhấp vào nút "Tạo folder " ở phía bên trái. Lựa chọn mặc định (SDMF) phù hợp với mục đích của ta :

Tahoe-LAFS tạo folder

Bạn sẽ được đưa đến trang folder giống như sau:

Trang folder  Tahoe-LAFS

Thư mục này không có tên theo nghĩa tiêu chuẩn mà ta quen thuộc. Thay vào đó, nó có khá nhiều ID (thực tế là một vài ID). Bởi vì nó không có tên và Tahoe-LAFS không thực hiện truy vấn vì lý do bảo mật, ta sẽ không thể quay lại folder này nếu ta không lưu trữ thông tin về nó ngay bây giờ.

Bạn có thể đánh dấu trang này trong trình duyệt hoặc bạn có thể ghi lại các ID được liên kết với folder . Để nhận ID, hãy nhấp vào liên kết "Thông tin thêm về folder này" ở đầu trang:

Tahoe-LAFS liên kết thông tin thêm

Bạn sẽ được đưa đến một trang có index lưu trữ, loại đối tượng và quan trọng nhất là các mũ truy cập hoặc Tahoe-URI . Chúng được liệt kê trong một bảng ở giữa trang:

Giới hạn truy cập Tahoe-LAFS

Điều này có vẻ giống như rất nhiều thông tin cần thiết để truy cập một folder đơn giản, và đúng như vậy. Đối với folder , ta có một URI truy cập để truy cập đọc và ghi, và một URI riêng cho quyền truy cập chỉ đọc mà ta có thể cung cấp.

Đây là thông tin mà ta cần để quay lại folder này. Bạn có thể copy paste nó vào đâu đó. Nhấp vào liên kết “JSON” để có bản trình bày dễ hiểu hơn nếu bạn đang viết kịch bản:

<pre>
[
"Dirnode",
{
“Rw uri”: “URI: DIR2: nkqxlvkfkxuh2xi7t4g2h2uyxe: p2hjy74uoro4ce5xccsq4nr2gkhwzx4cdqnmz4hbb3gysx7quata”,
Verify uri”: “URI: DIR2-Verifier: vieiojcnkuoq5kq6e2zjavgznq: p2hjy74uoro4ce5xccsq4nr2gkhwzx4cdqnmz4hbb3gysx7quata”,
“Ro_uri”: “URI: DIR2-RO: dpviyzeqau7skc5zfzil2s5pnq: p2hjy74uoro4ce5xccsq4nr2gkhwzx4cdqnmz4hbb3gysx7quata”,
"bọn trẻ": {},
"Có thể thay đổi": true
}
]
</pre>

Bên trong folder , ta có thể tải file lên dễ dàng bằng các node có sẵn. Bạn có thể biến chúng thành bất biến (chỉ đọc) hoặc có thể ghi bằng cách chọn các node radio. Bạn sẽ không phải theo dõi tất cả các URI cho các file này miễn là chúng được lưu giữ trong folder mà bạn có URI.

Nếu bạn muốn có nhiều khả năng hơn, có rất nhiều giao diện user thay thế cho Tahoe-LAFS được liệt kê ở đây. Mối quan tâm đặc biệt có thể là giao diện dòng lệnh và giao diện SFTP, có thể giúp bạn quản lý file của bạn theo cách dễ dàng hơn nhiều.Ví dụ: CLI cho phép bạn tạo alias cho các folder và file của bạn để bạn không phải theo dõi các URI.

Kết luận

Bây giờ, bạn đã có một ý tưởng tốt về cách cài đặt hệ thống file phân tán, được mã hóa trên nhiều phương tiện lưu trữ khác nhau, cho dù bạn có tin tưởng các administrator hay không. Điều này cho phép bạn tránh một số vấn đề về lòng tin vốn có khi nhờ người khác quản lý dữ liệu .

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt ProcessWire trên VPS Ubuntu
2014-03-20
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt HHVM (Máy ảo HipHop) trên VPS Ubuntu 13.10
2014-03-18
Cách thiết lập server cloud Ubuntu cho ứng dụng web Python
2014-02-25
Cách cài đặt và bắt đầu với CMS Mezzanine trên Django trên Ubuntu
2014-02-25
Cách cài đặt Django CMS phiên bản 3 Beta 3 với Django 1.6 trên Ubuntu
2014-02-25
Làm thế nào để Dockerise và triển khai nhiều ứng dụng WordPress trên Ubuntu
2014-02-13
Cách cài đặt Ruby 2.1.0 và Sinatra trên Ubuntu 13 với RVM
2014-02-10
Cách tạo Sách dạy nấu ăn Đầu bếp Đơn giản để Quản lý Cơ sở hạ tầng trên Ubuntu
2014-02-03