MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Triển khai một Nextcloud khả dụng cao với MySQL Galera Cluster và GlusterFS

Nextcloud là ứng dụng chia sẻ và đồng bộ hóa tệp mã nguồn mở cung cấp khả năng lưu trữ tệp trên đám mây miễn phí, an toàn và dễ truy cập cũng như một số công cụ mở rộng bộ tính năng của nó. Nó rất giống với Dropbox, iCloud và Google Drive phổ biến nhưng không giống như Dropbox, Nextcloud không cung cấp dịch vụ lưu trữ tệp bên ngoài cơ sở.

Trong bài đăng blog này, chúng tôi sẽ triển khai một thiết lập khả dụng cao cho cơ sở hạ tầng "Dropbox" riêng tư của chúng tôi bằng cách sử dụng Nextcloud, GlusterFS, Percona XtraDB Cluster (MySQL Galera Cluster), ProxySQL với ClusterControl làm công cụ tự động hóa để quản lý và giám sát cơ sở dữ liệu và các tầng cân bằng tải.

Lưu ý:Bạn cũng có thể sử dụng MariaDB Cluster, sử dụng cùng một thư viện sao chép cơ bản như trong Percona XtraDB Cluster. Từ góc độ cân bằng tải, ProxySQL hoạt động tương tự như MaxScale ở chỗ nó có thể hiểu lưu lượng SQL và có quyền kiểm soát chi tiết về cách lưu lượng được định tuyến.

Kiến trúc Cơ sở dữ liệu cho Nexcloud

Trong bài đăng trên blog này, chúng tôi đã sử dụng tổng cộng 6 nút.

  • 2 x máy chủ proxy
  • 3 x cơ sở dữ liệu + máy chủ ứng dụng
  • 1 x máy chủ điều khiển (ClusterControl)

Sơ đồ sau minh họa thiết lập cuối cùng của chúng tôi:

Đối với Cụm Percona XtraDB, yêu cầu tối thiểu 3 nút cho một khối sao chép đa chủ. Các ứng dụng Nextcloud được đặt chung trong các máy chủ cơ sở dữ liệu, do đó GlusterFS cũng phải được định cấu hình trên các máy chủ đó.

Tầng cân bằng tải bao gồm 2 nút cho mục đích dự phòng. Chúng tôi sẽ sử dụng ClusterControl để triển khai tầng cơ sở dữ liệu và tầng cân bằng tải. Tất cả các máy chủ đang chạy trên CentOS 7 với định nghĩa / etc / hosts sau trên mọi nút:

192.168.0.21 nextcloud1 db1

192.168.0.22 nextcloud2 db2

192.168.0.23 nextcloud3 db3

192.168.0.10 vip db

192.168.0.11 proxy1 lb1 proxysql1

192.168.0.12 proxy2 lb2 proxysql2

Lưu ý rằng GlusterFS và MySQL là các quy trình chuyên sâu. Nếu bạn đang theo thiết lập này (GlusterFS và MySQL nằm trong một máy chủ duy nhất), hãy đảm bảo bạn có thông số kỹ thuật phần cứng phù hợp cho các máy chủ.

Triển khai Cơ sở dữ liệu Nextcloud

Chúng tôi sẽ bắt đầu với việc triển khai cơ sở dữ liệu cho Cụm Percona XtraDB ba nút của chúng tôi bằng cách sử dụng ClusterControl. Cài đặt ClusterControl và sau đó thiết lập SSH không mật khẩu cho tất cả các nút sẽ được quản lý bởi ClusterControl (3 PXC + 2 proxy). Trên nút ClusterControl, hãy thực hiện:

$ whoami

root

$ ssh-copy-id 192.168.0.11

$ ssh-copy-id 192.168.0.12

$ ssh-copy-id 192.168.0.21

$ ssh-copy-id 192.168.0.22

$ ssh-copy-id 192.168.0.23

** Nhập mật khẩu gốc cho máy chủ tương ứng khi được nhắc.

Mở trình duyệt web và truy cập https:// {ClusterControl-IP-address} / clustercontrol và tạo siêu người dùng. Sau đó, vào Deploy -> MySQL Galera. Thực hiện theo trình hướng dẫn triển khai cho phù hợp. Ở giai đoạn thứ hai 'Xác định Máy chủ MySQL', chọn Percona XtraDB 5.7 và chỉ định địa chỉ IP cho mọi nút cơ sở dữ liệu. Đảm bảo rằng bạn nhận được dấu tích màu xanh lá cây sau khi nhập chi tiết nút cơ sở dữ liệu, như được hiển thị bên dưới:

Nhấp vào "Triển khai" để bắt đầu triển khai. Cụm cơ sở dữ liệu sẽ sẵn sàng sau 15 ~ 20 phút. Bạn có thể theo dõi tiến độ triển khai tại Hoạt động -> Công việc -> Tạo Cụm -> Chi tiết Công việc đầy đủ. Cụm sẽ được liệt kê trong bảng điều khiển Cụm cơ sở dữ liệu sau khi được triển khai.

Bây giờ chúng ta có thể tiến hành triển khai bộ cân bằng tải cơ sở dữ liệu.

Triển khai Bộ cân bằng tải cơ sở dữ liệu Nextcloud

Nextcloud được khuyến nghị chạy trên thiết lập một người viết, nơi các bản ghi sẽ được xử lý bởi một bản gốc tại một thời điểm và các lần đọc có thể được phân phối cho các nút khác. Chúng ta có thể sử dụng ProxySQL 2.0 để đạt được cấu hình này vì nó có thể định tuyến các truy vấn ghi đến một tổng thể duy nhất.

Để triển khai ProxySQL, hãy nhấp vào Cluster Actions> Add Load Balancer> ProxySQL> Deploy ProxySQL. Nhập thông tin bắt buộc như được đánh dấu bằng các mũi tên màu đỏ:

Điền vào tất cả các chi tiết cần thiết như được đánh dấu bằng các mũi tên ở trên. Địa chỉ máy chủ là máy chủ lb1, 192.168.0.11. Sâu hơn nữa, chúng tôi chỉ định quản trị viên ProxySQL và mật khẩu giám sát của người dùng. Sau đó, bao gồm tất cả các máy chủ MySQL vào bộ cân bằng tải và sau đó chọn "Không" trong phần Giao dịch ngầm định. Nhấp vào "Triển khai ProxySQL" để bắt đầu triển khai.

Lặp lại các bước tương tự như trên cho bộ cân bằng tải thứ cấp, lb2 (nhưng thay đổi "Địa chỉ máy chủ" thành địa chỉ IP của lb2). Nếu không, chúng tôi sẽ không có dư thừa trong lớp này.

Các nút ProxySQL của chúng tôi hiện đã được cài đặt và định cấu hình với hai nhóm máy chủ cho Galera Cluster. Một cho nhóm chủ đơn (nhóm máy chủ 10), trong đó tất cả các kết nối sẽ được chuyển tiếp đến một nút Galera (điều này hữu ích để ngăn chặn tình trạng nhiều nút chính) và nhóm đa chủ (nhóm máy chủ 20) cho tất cả khối lượng công việc chỉ đọc mà sẽ được cân bằng cho tất cả các máy chủ MySQL phụ trợ.

Tiếp theo, chúng tôi cần triển khai một địa chỉ IP ảo để cung cấp một điểm cuối duy nhất cho các nút ProxySQL của chúng tôi, do đó ứng dụng của bạn sẽ không cần xác định hai máy chủ ProxySQL khác nhau. Điều này cũng sẽ cung cấp khả năng chuyển đổi dự phòng tự động vì địa chỉ IP ảo sẽ được tiếp quản bởi nút ProxySQL dự phòng trong trường hợp có sự cố xảy ra với nút ProxySQL chính.

Đi tới ClusterControl -> Manage -> Load Balancers -> Keepalived -> Deploy Keepalived. Chọn "ProxySQL" làm loại cân bằng tải và chọn hai máy chủ ProxySQL riêng biệt từ menu thả xuống. Sau đó chỉ định địa chỉ IP ảo cũng như giao diện mạng mà nó sẽ lắng nghe, như thể hiện trong ví dụ sau:

Khi quá trình triển khai hoàn tất, bạn sẽ thấy các chi tiết sau trên thanh tóm tắt của cụm:

Cuối cùng, tạo cơ sở dữ liệu mới cho ứng dụng của chúng ta bằng cách đi tới ClusterControl -> Manage -> Schemas and Users -> Create Database và chỉ định "nextcloud". ClusterControl sẽ tạo cơ sở dữ liệu này trên mọi nút Galera. Lớp cân bằng tải của chúng tôi hiện đã hoàn tất.

Triển khai GlusterFS cho Nextcloud

Các bước sau phải được thực hiện trên nextcloud1, nextcloud2, nextcloud3 trừ khi được chỉ định khác.

Bước một

Chúng tôi khuyên bạn nên có một cái riêng biệt này để lưu trữ GlusterFS, vì vậy chúng tôi sẽ thêm đĩa bổ sung theo / dev / sdb và tạo một phân vùng mới:

$ fdisk /dev/sdb

Làm theo hướng dẫn tạo phân vùng fdisk bằng cách nhấn phím sau:

n > p > Enter > Enter > Enter > w

Bước hai

Xác minh xem / dev / sdb1 đã được tạo chưa:

$ fdisk -l /dev/sdb1

Disk /dev/sdb1: 8588 MB, 8588886016 bytes, 16775168 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Bước ba

Định dạng phân vùng bằng XFS:

$ mkfs.xfs /dev/sdb1

Bước bốn

Gắn phân vùng dưới dạng / storage / brick:

$ mkdir /glusterfs

$ mount /dev/sdb1 /glusterfs

Xác minh rằng tất cả các nút có bố cục sau:

$ lsblk

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda      8:0 0 40G  0 disk

└─sda1   8:1 0 40G  0 part /

sdb      8:16 0   8G 0 disk

└─sdb1   8:17 0   8G 0 part /glusterfs

Bước năm

Tạo một thư mục con có tên là brick under / glusterfs:

$ mkdir /glusterfs/brick

Bước sáu

Để dự phòng ứng dụng, chúng ta có thể sử dụng GlusterFS để sao chép tệp giữa các máy chủ. Trước tiên, hãy cài đặt kho lưu trữ GlusterFS cho CentOS:

$ yum install centos-release-gluster -y

$ yum install epel-release -y

Bước bảy

Cài đặt máy chủ GlusterFS

$ yum install glusterfs-server -y

Bước 8

Bật và khởi động daemon gluster:

$ systemctl enable glusterd

$ systemctl start glusterd

Bước 9

Trên nextcloud1, thăm dò các nút khác:

(nextcloud1)$ gluster peer probe 192.168.0.22

(nextcloud1)$ gluster peer probe 192.168.0.23

Bạn có thể xác minh trạng thái ngang hàng bằng lệnh sau:

(nextcloud1)$ gluster peer status

Number of Peers: 2



Hostname: 192.168.0.22

Uuid: f9d2928a-6b64-455a-9e0e-654a1ebbc320

State: Peer in Cluster (Connected)



Hostname: 192.168.0.23

Uuid: 100b7778-459d-4c48-9ea8-bb8fe33d9493

State: Peer in Cluster (Connected)

Bước 10

Trên nextcloud1, tạo một ổ đĩa sao chép trên các nút được thăm dò:

(nextcloud1)$ gluster volume create rep-volume replica 3 192.168.0.21:/glusterfs/brick 192.168.0.22:/glusterfs/brick 192.168.0.23:/glusterfs/brick

volume create: rep-volume: success: please start the volume to access data

Bước 11

Bắt đầu tập sao chép trên nextcloud1:

(nextcloud1)$ gluster volume start rep-volume

volume start: rep-volume: success

Xác minh khối lượng sao chép và các quy trình đang trực tuyến:

$ gluster volume status

Status of volume: rep-volume

Gluster process                             TCP Port RDMA Port Online Pid

------------------------------------------------------------------------------

Brick 192.168.0.21:/glusterfs/brick         49152 0 Y 32570

Brick 192.168.0.22:/glusterfs/brick         49152 0 Y 27175

Brick 192.168.0.23:/glusterfs/brick         49152 0 Y 25799

Self-heal Daemon on localhost               N/A N/A Y 32591

Self-heal Daemon on 192.168.0.22            N/A N/A Y 27196

Self-heal Daemon on 192.168.0.23            N/A N/A Y 25820



Task Status of Volume rep-volume

------------------------------------------------------------------------------

There are no active volume tasks

Bước 12

Gắn ổ đĩa đã sao lên trên / var / www / html. Tạo thư mục:

$ mkdir -p /var/www/html

Bước mười ba

13) Thêm dòng sau vào / etc / fstab để cho phép tự động gắn kết:

/dev/sdb1 /glusterfs xfs defaults,defaults 0 0

localhost:/rep-volume /var/www/html   glusterfs defaults,_netdev 0 0

Bước mười bốn

Gắn GlusterFS vào / var / www / html:

$ mount -a

Và xác minh bằng:

$ mount | grep gluster

/dev/sdb1 on /glusterfs type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

localhost:/rep-volume on /var/www/html type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)

Ổ đĩa sao chép hiện đã sẵn sàng và được gắn vào mọi nút. Bây giờ chúng tôi có thể tiến hành triển khai ứng dụng.

Triển khai ứng dụng Nextcloud

Các bước sau phải được thực hiện trên nextcloud1, nextcloud2 và nextcloud3 trừ khi được chỉ định khác.

Nextcloud yêu cầu PHP 7.2 trở lên và để phân phối CentOS, chúng tôi phải kích hoạt một số kho lưu trữ như EPEL và Remi để đơn giản hóa quá trình cài đặt.

Bước một

Nếu SELinux được bật, hãy tắt nó trước:

$ setenforce 0

$ sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Bạn cũng có thể chạy Nextcloud khi bật SELinux bằng cách làm theo hướng dẫn này.

Bước hai

Cài đặt các yêu cầu Nextcloud và kích hoạt kho lưu trữ Remi cho PHP 7.2:

$ yum install -y epel-release yum-utils unzip curl wget bash-completion policycoreutils-python mlocate bzip2

$ yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

$ yum-config-manager --enable remi-php72

Bước ba

Cài đặt các gói phụ thuộc Nextcloud, chủ yếu là các gói liên quan đến Apache và PHP 7.2:

$ yum install -y httpd php72-php php72-php-gd php72-php-intl php72-php-mbstring php72-php-mysqlnd php72-php-opcache php72-php-pecl-redis php72-php-pecl-apcu php72-php-pecl-imagick php72-php-xml php72-php-pecl-zip

Bước Bốn

Bật Apache và khởi động nó:

$ systemctl enable httpd.service

$ systemctl start httpd.service

Bước Năm

Tạo một liên kết tượng trưng cho PHP để sử dụng PHP 7.2 nhị phân:

$ ln -sf /bin/php72 /bin/php

Bước Sáu

Trên nextcloud1, tải xuống Máy chủ Nextcloud từ đây và giải nén:

$ wget https://download.nextcloud.com/server/releases/nextcloud-17.0.0.zip

$ unzip nextcloud*

Bước Bảy

Trên nextcloud1, sao chép thư mục vào / var / www / html và chỉ định quyền sở hữu chính xác:

$ cp -Rf nextcloud /var/www/html

$ chown -Rf apache:apache /var/www/html

** Lưu ý rằng quá trình sao chép vào / var / www / html sẽ mất một chút thời gian do quá trình sao chép số lượng GlusterFS.

Bước 8

Trước khi tiến hành mở trình hướng dẫn cài đặt, chúng ta phải tắt biến pxc_strict_mode thành khác "ENFORCING" (giá trị mặc định). Điều này là do việc nhập cơ sở dữ liệu Nextcloud sẽ có một số bảng không có khóa chính được xác định, không được khuyến nghị chạy trên Galera Cluster. Điều này được giải thích chi tiết hơn trong phần Điều chỉnh ở phía dưới.

Để thay đổi cấu hình với ClusterControl, chỉ cần vào Manage -> Configurations -> Change / Set Parameters:

Chọn tất cả các phiên bản cơ sở dữ liệu từ danh sách và nhập:

  • Nhóm:MYSQLD
  • Tham số:pxc_strict_mode
  • Giá trị mới:PERMISSIVE

ClusterControl sẽ tự động thực hiện các thay đổi cần thiết trên mọi nút cơ sở dữ liệu. Nếu giá trị có thể được thay đổi trong thời gian chạy, nó sẽ có hiệu lực ngay lập tức. ClusterControl cũng định cấu hình giá trị bên trong tệp cấu hình MySQL để duy trì tính ổn định. Bạn sẽ thấy kết quả sau:

Bước 9

Bây giờ chúng ta đã sẵn sàng để cấu hình cài đặt Nextcloud của mình. Mở trình duyệt và truy cập máy chủ HTTP của nextcloud1 tại http://192.168.0.21/nextcloud/ và bạn sẽ thấy trình hướng dẫn cấu hình sau:

Định cấu hình phần "Lưu trữ &cơ sở dữ liệu" với giá trị sau:

  • Thư mục dữ liệu:/ var / www / html / nextcloud / data
  • Định cấu hình cơ sở dữ liệu:MySQL / MariaDB
  • Tên người dùng:nextcloud
  • Mật khẩu:(mật khẩu dành cho người dùng nextcloud)
  • Cơ sở dữ liệu:nextcloud
  • Máy chủ:192.168.0.10:6603 (Địa chỉ IP ảo với cổng ProxySQL)

Nhấp vào "Hoàn tất thiết lập" để bắt đầu quá trình cấu hình. Chờ cho đến khi nó kết thúc và bạn sẽ được chuyển hướng đến bảng điều khiển Nextcloud cho người dùng "quản trị viên". Việc cài đặt đã hoàn tất. Phần tiếp theo cung cấp một số mẹo điều chỉnh để chạy hiệu quả với Galera Cluster.

Điều chỉnh Cơ sở dữ liệu Nextcloud

Khóa chính

Có một khóa chính trên mỗi bảng là rất quan trọng đối với việc sao chép bộ ghi Galera Cluster. Đối với một bảng tương đối lớn không có khóa chính, giao dịch cập nhật hoặc xóa lớn sẽ chặn hoàn toàn cụm của bạn trong một thời gian rất dài. Để tránh mọi trường hợp kỳ quặc và khó hiểu, chỉ cần đảm bảo rằng tất cả các bảng đang sử dụng công cụ lưu trữ InnoDB với khóa chính rõ ràng (không tính khóa duy nhất).

Cài đặt mặc định của Nextcloud sẽ tạo ra một loạt các bảng trong cơ sở dữ liệu được chỉ định và một số bảng trong số đó không tuân thủ quy tắc này. Để kiểm tra xem các bảng có tương thích với Galera hay không, chúng ta có thể chạy câu lệnh sau:

mysql> SELECT DISTINCT CONCAT(t.table_schema,'.',t.table_name) as tbl, t.engine, IF(ISNULL(c.constraint_name),'NOPK','') AS nopk, IF(s.index_type = 'FULLTEXT','FULLTEXT','') as ftidx, IF(s.index_type = 'SPATIAL','SPATIAL','') as gisidx FROM information_schema.tables AS t LEFT JOIN information_schema.key_column_usage AS c ON (t.table_schema = c.constraint_schema AND t.table_name = c.table_name AND c.constraint_name = 'PRIMARY') LEFT JOIN information_schema.statistics AS s ON (t.table_schema = s.table_schema AND t.table_name = s.table_name AND s.index_type IN ('FULLTEXT','SPATIAL'))   WHERE t.table_schema NOT IN ('information_schema','performance_schema','mysql') AND t.table_type = 'BASE TABLE' AND (t.engine <> 'InnoDB' OR c.constraint_name IS NULL OR s.index_type IN ('FULLTEXT','SPATIAL')) ORDER BY t.table_schema,t.table_name;

+---------------------------------------+--------+------+-------+--------+

| tbl                                   | engine | nopk | ftidx | gisidx |

+---------------------------------------+--------+------+-------+--------+

| nextcloud.oc_collres_accesscache      | InnoDB | NOPK | | |

| nextcloud.oc_collres_resources        | InnoDB | NOPK | | |

| nextcloud.oc_comments_read_markers    | InnoDB | NOPK | | |

| nextcloud.oc_federated_reshares       | InnoDB | NOPK | | |

| nextcloud.oc_filecache_extended       | InnoDB | NOPK | | |

| nextcloud.oc_notifications_pushtokens | InnoDB | NOPK |       | |

| nextcloud.oc_systemtag_object_mapping | InnoDB | NOPK |       | |

+---------------------------------------+--------+------+-------+--------+

Kết quả trên cho thấy có 7 bảng không có khóa chính được xác định. Để khắc phục điều trên, chỉ cần thêm khóa chính với cột tăng tự động. Chạy các lệnh sau trên một trong các máy chủ cơ sở dữ liệu, ví dụ:nexcloud1:

(nextcloud1)$ mysql -uroot -p

mysql> ALTER TABLE nextcloud.oc_collres_accesscache ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

mysql> ALTER TABLE nextcloud.oc_collres_resources ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

mysql> ALTER TABLE nextcloud.oc_comments_read_markers ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

mysql> ALTER TABLE nextcloud.oc_federated_reshares ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

mysql> ALTER TABLE nextcloud.oc_filecache_extended ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

mysql> ALTER TABLE nextcloud.oc_notifications_pushtokens ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

mysql> ALTER TABLE nextcloud.oc_systemtag_object_mapping ADD COLUMN `id` INT PRIMARY KEY AUTO_INCREMENT;

Khi các sửa đổi trên đã được áp dụng, chúng tôi có thể định cấu hình lại pxc_strict_mode về giá trị được đề xuất, "ENFORCING". Lặp lại bước # 8 trong phần "Triển khai ứng dụng" với giá trị tương ứng.

Mức cô lập ĐÃ ĐỌC ĐƯỢC CAM KẾT

Mức cách ly giao dịch được đề xuất theo lời khuyên của Nextcloud là sử dụng READ-COMMITTED, trong khi Galera Cluster được mặc định ở mức cô lập REPEATABLE-READ chặt chẽ hơn. Sử dụng READ-COMMITTED có thể tránh mất dữ liệu trong các tình huống tải cao (ví dụ:bằng cách sử dụng ứng dụng khách đồng bộ với nhiều khách hàng / người dùng và nhiều hoạt động song song).

Để sửa đổi cấp độ giao dịch, hãy chuyển đến ClusterControl -> Manage -> Configurations -> Change / Set Parameter và chỉ định như sau:

Nhấp vào "Tiếp tục" và ClusterControl sẽ áp dụng các thay đổi cấu hình ngay lập tức. Không cần khởi động lại cơ sở dữ liệu.

Multi-Instance Nextcloud

Vì chúng tôi đã thực hiện cài đặt trên nextcloud1 khi truy cập URL, nên địa chỉ IP này sẽ tự động được thêm vào biến 'trust_domains' bên trong Nextcloud. Khi bạn cố gắng truy cập các máy chủ khác, chẳng hạn như máy chủ phụ, http://192.168.0.22/nextcloud, bạn sẽ thấy lỗi rằng đây là máy chủ không được ủy quyền và phải được thêm vào biến Trust_domain.

Do đó, hãy thêm tất cả địa chỉ IP của máy chủ trong mảng "trust_domain" bên trong /var/www/html/nextcloud/config/config.php, như ví dụ bên dưới:

  'trusted_domains' =>

  array (

    0 => '192.168.0.21',

    1 => '192.168.0.22',

    2 => '192.168.0.23'

  ),

Cấu hình trên cho phép người dùng truy cập vào cả ba máy chủ ứng dụng thông qua các URL sau:

  • http://192.168.0.21/nextcloud (nextcloud1)
  • http://192.168.0.22/nextcloud (nextcloud2)
  • http://192.168.0.23/nextcloud (nextcloud3)

Lưu ý:Bạn có thể thêm một cấp cân bằng tải trên đầu ba phiên bản Nextcloud này để đạt được tính khả dụng cao cho cấp ứng dụng bằng cách sử dụng proxy ngược HTTP có sẵn trên thị trường như HAProxy hoặc nginx. Điều đó nằm ngoài phạm vi của bài đăng trên blog này.

Sử dụng Redis để Khóa Tệp

Cơ chế Khóa Tệp Giao dịch của Nextcloud sẽ khóa tệp để tránh tệp bị hỏng trong quá trình hoạt động bình thường. Bạn nên cài đặt Redis để xử lý việc khóa tệp giao dịch (tính năng này được bật theo mặc định), điều này sẽ làm giảm tải cụm cơ sở dữ liệu khỏi xử lý công việc nặng nhọc này.

Để cài đặt Redis, chỉ cần:

$ yum install -y redis

$ systemctl enable redis.service

$ systemctl start redis.service

Nối các dòng sau vào trong /var/www/html/nextcloud/config/config.php:

  'filelocking.enabled' => true,

  'memcache.locking' => '\OC\Memcache\Redis',

  'redis' => array(

     'host' => '192.168.0.21',

     'port' => 6379,

     'timeout' => 0.0,

   ),

Để biết thêm chi tiết, hãy xem tài liệu này, Khóa tệp giao dịch.

Kết luận

Nextcloud có thể được định cấu hình để trở thành một dịch vụ lưu trữ tệp có khả năng mở rộng và khả dụng cao để đáp ứng nhu cầu chia sẻ tệp riêng tư của bạn. Trong blog này, chúng tôi đã chỉ ra cách bạn có thể mang lại sự dư thừa trong Nextcloud, hệ thống tệp và các lớp cơ sở dữ liệu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ tạo một bảng nếu nó không tồn tại trong MariaDB

  2. Triển khai bản sao MySQL Multicloud an toàn trên AWS và GCP với VPN

  3. MariaDB JSON_MERGE_PATCH () Giải thích

  4. Cách WEIGHT_STRING () hoạt động trong MariaDB

  5. HOUR () so với EXTRACT (HOUR…) ở MariaDB:Sự khác biệt là gì?