Lưu trữ đám mây Riak. Phần 1: Thiết lập Riak KV

Riak CS (Lưu trữ đám mây) – phần mềm tổ chức lưu trữ đối tượng dễ sử dụng, chạy trên Riak KV. Riak (KV) là cơ sở dữ liệu khóa-giá trị NoSQL phân tán. Riak CS được thiết kế để cung cấp sự đơn giản, tính khả dụng, phân phối lưu trữ đám mây ở mọi quy mô và có thể được sử dụng để xây dựng kiến ​​trúc đám mây - cả công cộng và riêng tư - hoặc làm bộ lưu trữ cơ sở hạ tầng cho các ứng dụng và dịch vụ có tải cao. API Riak CS tương thích với Amazon S3 và hỗ trợ khả năng nhận báo cáo về nhiều tình huống khác nhau.

Lưu trữ đám mây Riak. Phần 1: Thiết lập Riak KV
Bài viết này là bản dịch miễn phí của hướng dẫn sử dụng chính thức cho hệ thống Riak CS phiên bản 2.1.1

Trong hệ thống lưu trữ Riak CS, ba thành phần hoạt động kết hợp với nhau, có nghĩa là mỗi thành phần phải được cấu hình để hoạt động với các thành phần khác:

  • Riak (KV) – một hệ thống cơ sở dữ liệu hoạt động như một hệ thống đầu cuối.
  • Riak CS - Lớp lưu trữ đám mây trên Riak cung cấp khả năng lưu trữ và API, lưu trữ tệp và siêu dữ liệu trong Riak, sau đó phân phối chúng cho người dùng cuối.
  • cột chống - Quản lý các truy vấn liên quan đến các thực thể duy nhất trên toàn cầu như nhóm và người dùng trong phiên bản Riak. Ví dụ: tạo người dùng, tạo hoặc xóa nhóm.

Ngoài ra, bạn cũng có thể định cấu hình ứng dụng khách S3 để sử dụng trong việc nhắn tin bằng hệ thống Riak CS.

Bạn nên lập kế hoạch có một nút Riak cho mỗi nút Riak CS trên hệ thống của mình. Các nút Riak và Riak CS có thể chạy trên các máy vật lý khác nhau, nhưng trong hầu hết các trường hợp, tốt nhất là chạy một nút Riak và một nút Riak CS trên cùng một máy vật lý. Giả sử một máy vật lý có đủ sức mạnh để đáp ứng nhu cầu của cả hai nút Riak và Riak CS, nhìn chung bạn sẽ thấy hiệu suất tốt hơn do độ trễ mạng giảm.

Nếu hệ thống của bạn bao gồm một số nút, thì việc cấu hình chủ yếu là thiết lập liên lạc giữa các thành phần. Các cài đặt khác, chẳng hạn như nơi lưu trữ tệp nhật ký, có giá trị mặc định và chỉ cần thay đổi nếu bạn muốn sử dụng các giá trị không chuẩn.

Thiết lập các thành phần hệ thống. Thiết lập Riak KV cho CS

Vì Riak CS là một ứng dụng được xây dựng dựa trên Riak nên điều quan trọng là phải chú ý đến cấu hình Riak của bạn khi chạy Riak CS. Tài liệu này vừa là hướng dẫn cấu hình Riak vừa là tài liệu tham khảo mô tả các thông số cấu hình quan trọng.

Trước khi thiết lập, hãy đảm bảo Riak KV và Riak CS được cài đặt trên mọi nút trong cụm của bạn. Mặt khác, Stanchion chỉ nên được cài đặt trên một nút trong toàn bộ cụm.

Lưu trữ đám mây Riak. Phần 1: Thiết lập Riak KV

Phần phụ trợ cho Riak CS

Phần phụ trợ mặc định được Riak sử dụng là Bitcask, nhưng gói Riak CS bao gồm một phần phụ trợ đặc biệt phải được sử dụng bởi cụm Riak vốn là một phần của hệ thống Riak CS. Phiên bản thông thường có phần phụ trợ Multi tiêu chuẩn đi kèm với Riak.

Các nhóm Riak tương tự được sử dụng bên trong Riak CS sử dụng các chỉ mục phụ, hiện yêu cầu chương trình phụ trợ LevelDB. Các phần khác của hệ thống Riak CS có thể được hưởng lợi từ việc sử dụng chương trình phụ trợ Bticask. Việc sử dụng mẫu Đa phụ trợ được bao gồm trong Riak CS để tận dụng cả hai phụ trợ này nhằm đạt được sự kết hợp tốt nhất giữa hiệu suất và chức năng. Phần tiếp theo mô tả cách định cấu hình Riak đúng cách để sử dụng Multi-backend này.

Phần phụ trợ là thứ Riak sẽ sử dụng để lưu dữ liệu. Riak KV có một số chương trình phụ trợ trong kho vũ khí của mình: Bitcask, LevelDB, Memory và Multi.

Ngoài ra, hệ thống tính toán lưu trữ sử dụng Riak MapReduse để tổng hợp các tệp thành các nhóm. Điều này có nghĩa là bạn phải cho tất cả các nút Riak biết nơi cần tìm các tệp Riak CS đã chuẩn bị trước khi tính toán lưu trữ.

Một số tham số khác phải được thay đổi để định cấu hình nút Riak như một phần của hệ thống Riak CS, chẳng hạn như địa chỉ IP, địa chỉ IP và cổng để nhắn tin thông qua Bộ đệm giao thức. Các cài đặt khác có thể được thay đổi nếu cần thiết. Các phần sau mô tả cách định cấu hình nút Riak để hoạt động như một phần của hệ thống Riak CS.

Thiết lập phụ trợ Riak

Đầu tiên, các tệp cấu hình riak.conf hoặc Advanced.config/app.config được chỉnh sửa. Các tệp này có thể được đặt trong thư mục /etc/riak hoặc /opt/riak/etc. Theo mặc định, Riak sử dụng phần phụ trợ Bitcask. Điều đầu tiên chúng ta cần làm là thay đổi tệp cấu hình bằng cách xóa dòng sau:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

NÂNG CAO.CONFIG

{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

ỨNG DỤNG.CẤU HÌNH

{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}

Tiếp theo, chúng tôi cần chứng minh sự cần thiết của các mô-đun RiakCS cho Riak và hướng dẫn Riak sử dụng phần phụ trợ được định cấu hình cung cấp Riak CS. Chúng ta cần sử dụng tệp Advanced.config hoặc app.config cho việc này và thêm các tùy chọn sau:

NÂNG CAO.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

ỨNG DỤNG.CẤU HÌNH

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

Điều rất quan trọng cần lưu ý là nhiều giá trị trong số này sẽ phụ thuộc vào các biến thể thư mục dành riêng cho hệ điều hành của bạn, vì vậy hãy làm theo hướng dẫn tương ứng. Ví dụ: tùy chọn add_paths giả định rằng Riak CS được cài đặt trong /usr/lib/riak-cs, trong khi tùy chọn data_root giả định rằng Riak được cài đặt trong /var/lib. (Lưu ý: Trong trường hợp của tôi, đó là add_paths - /usr/lib64/riak-cs/).

Cấu hình này giả định rằng Riak CS được cài đặt trên cùng một máy với Riak. Nếu không, gói cần được sao chép sang một máy chủ riêng.

Thiết lập tạo anh chị em

Bây giờ, chúng ta cần đặt tham số allow_mult thành true. Chúng ta có thể thêm một dòng trong tệp cấu hình riak.conf hoặc phần riak_core trong Advanced.config hoặc app.config.

RIAK.CONF

buckets.default.allow_mult = true

NÂNG CAO.CONFIG

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

ỨNG DỤNG.CẤU HÌNH

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

Điều này sẽ cho phép Riak tạo ra các anh chị em cần thiết để Riak CS hoạt động. Nếu bạn kết nối với Riak CS bằng thư viện máy khách, đừng lo lắng: bạn sẽ không phải giải quyết xung đột vì tất cả các hoạt động của Riak CS đều nhất quán nghiêm ngặt như đã xác định.

Anh em ruột là cách lưu trữ nhiều đối tượng trong một khóa để đối tượng có các giá trị khác nhau trên các nút khác nhau.

Lưu ý: allow_mult
Bất kỳ nút Riak nào cũng hỗ trợ Riak CS sẽ luôn có allow_mult được đặt thành true. Riak CS sẽ đặt lại lần khởi chạy nếu giá trị sai.

Đặt tên máy chủ và địa chỉ IP

Mỗi nút Riak có một tên, tên này có thể được chỉ định trong tùy chọn tên nút trong riak.conf. Nếu bạn đang sử dụng tệp cấu hình app.config, bạn cần tạo một tệp có tên vm.args trong cùng thư mục với app.config và chỉ định tên máy chủ bằng cờ -name. Chúng tôi khuyên bạn nên chỉ định tên nút ở định dạng @. Và vì vậy nếu bạn có ba nút chạy trên một máy chủ 100.0.0.1, bạn có thể gọi chúng [email được bảo vệ], [email được bảo vệ][email được bảo vệ] hoặc bạn có thể đặt tên cụ thể hơn, chẳng hạn như [email được bảo vệ], [email được bảo vệ] và như thế. Ví dụ dưới đây minh họa việc thay đổi tên máy chủ thành [email được bảo vệ], sẽ chạy trên localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Bạn phải đặt tên cho tất cả các nút trước khi khởi động chúng và tham gia vào cụm.

Kiểm tra thiết lập

Bây giờ tất cả các cài đặt nút cần thiết đã được hoàn thành, chúng ta có thể thử khởi chạy Riak:

SHELL

 riak start 

Ghi chú Câu trả lời trong trường hợp của tôi:

Lưu trữ đám mây Riak. Phần 1: Thiết lập Riak KV

Ở đây bạn cần phải chờ một chút. Sau đó, bạn có thể bắt đầu kiểm tra nút đang chạy.

SHELL

 riak ping

Nếu phản hồi là pong thì Riak đang chạy; nếu phản hồi là Node không phản hồi với ping thì đã xảy ra lỗi.

Ghi chú Câu trả lời trong trường hợp của tôi:

Lưu trữ đám mây Riak. Phần 1: Thiết lập Riak KV

Nếu nút không khởi động chính xác, hãy xem nhật ký erlang.log.1 trong thư mục /log của nút nếu có thể xác định được sự cố. Một trong những lỗi phổ biến nhất là không hợp lệ_storage_backend. Điều này cho biết rằng đường dẫn đến thư viện Riak CS trong Advanced.config hoặc trong app.config không chính xác (hoặc Riak CS chưa được cài đặt trên máy chủ). Bất chấp lỗi này, hãy đảm bảo bạn chưa thay đổi từ riak_cs_kv_multi_backend thành riak_kv_multi_backend.

Định cấu hình Riak để sử dụng bộ đệm giao thức

Cài đặt bộ đệm giao thức Riak nằm trong riak.conf hoặc trong phần riak_api trong tệp Advanced.config hoặc app.config, nằm trong thư mục /etc/riak/. Theo mặc định, máy chủ có địa chỉ IP là 127.0.0.1 và cổng 8087. Bạn sẽ cần thay đổi những địa chỉ này nếu định chạy Riak và Riak CS trong môi trường không cục bộ. Thay thế 127.0.0.1 bằng địa chỉ IP máy chủ Riak và cổng 8087 bằng địa chỉ phù hợp.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

NÂNG CAO.CONF

{riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

ỨNG DỤNG.CẤU HÌNH

riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

Lưu ý:Giá trị của tham số listen.protobuf.internal trong tệp riak.conf (hoặc giá trị của tham số pb trong tệp Advanced.conf/app.config) phải khớp với các giá trị cho riak_host trong Riak CS riak-cs.config và Stanchion stanchion.conf (hoặc riak_host tương ứng trong các tệp .config/app.config nâng cao).

Lưu ý về số cổng
Có thể cần phải có số cổng khác nếu cổng xung đột với các cổng được ứng dụng khác sử dụng hoặc nếu bạn đang sử dụng bộ cân bằng tải hoặc máy chủ proxy.

Người dùng cũng nên đảm bảo rằng kích thước Riak protobuf.backlog (hoặc trong tệp Advanced.config/app.config đây là pb_backlog) bằng hoặc lớn hơn pool.request.size được chỉ định cho Riak CS trong riak-cs. config (hoặc request_pool_size trong tệp Advanced.config/app.conf).

Nếu giá trị của pool.request.size trong Riak CS đã bị thay đổi thì giá trị của protobuf.backlog cũng phải được cập nhật trong Riak.

Các cài đặt Riak khác

Các tệp riak.conf và Advanced.config bao gồm các cài đặt khác cấu hình việc tạo tệp nhật ký và nơi chúng được lưu. Các cài đặt này có giá trị mặc định và sẽ hoạt động trong hầu hết các trường hợp. Để biết thêm thông tin, chúng tôi khuyên bạn nên đọc tài liệu của chúng tôi về các tệp cấu hình.

Thiết lập địa chỉ IP cho Riak

Khi thiết lập địa chỉ IP cho Riak, bạn phải chắc chắn rằng các nút Riak có một địa chỉ IP duy nhất, cho dù bạn đang làm việc chỉ với một nút hay thêm nhiều nút hơn vào hệ thống. Địa chỉ IP Riak được chứa trong riak.conf hoặc - nếu bạn đang sử dụng tệp app.config - trong tệp cấu hình vm.args, nằm ở đó trong thư mục /etc/riak (hoặc /opt/riak/etc/ trên các hệ điều hành khác).

Ban đầu, dòng chứa địa chỉ IP Riak trỏ đến localhost tại vị trí này:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Thay thế 127.0.0.1 bằng địa chỉ IP hoặc tên máy chủ ưa thích của bạn của nút Riak.

Cài đặt hiệu suất và băng thông

Vì lý do hiệu suất, chúng tôi thực sự khuyên bạn nên thêm giá trị vào tệp cấu hình Riak riak.conf hoặc vm.args, nằm trong thư mục /etc/riak/ hoặc /opt/riak/etc.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536

Vô hiệu hóa JavaScript MapReduce

Bạn không nên sử dụng JavaScript MapReduce cũ với bất kỳ phiên bản nào của Riak CS. Vì lý do hiệu suất, bạn nên tắt máy ảo thực hiện các thao tác MapReduce JavaScript bằng cách cài đặt trong tệp cấu hình riak.conf hoặc trong phần riak_kv của Advanced.conf hoặc app.config:

RIAK.CONF

 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 

NÂNG CAO.CONFIG

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

ỨNG DỤNG.CẤU HÌNH

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

Tiếp theo chúng ta cần cấu hình các thành phần còn lại của hệ thống Riak CS.

Hướng dẫn sử dụng gốc.

Nguồn: www.habr.com

Thêm một lời nhận xét