<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Distributed Storage on Kang&#39;s Blog</title>
        <link>https://blog.coderkang.top/en/tags/distributed-storage/</link>
        <description>Recent content in Distributed Storage on Kang&#39;s Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Tue, 04 Jul 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.coderkang.top/en/tags/distributed-storage/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Comprehensive Guide to FastDFS Cluster Deployment</title>
            <link>https://blog.coderkang.top/en/p/fastdfs_cluster_deployment/</link>
            <pubDate>Tue, 04 Jul 2023 00:00:00 +0000</pubDate>
            <guid>https://blog.coderkang.top/en/p/fastdfs_cluster_deployment/</guid>
            <description>&lt;h2 id=&#34;reference&#34;&gt;Reference&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.cnblogs.com/lincappu/p/14926757.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;https://www.cnblogs.com/lincappu/p/14926757.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;fastdfs&#34;&gt;FastDFS&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;The author of FastDFS, Yu Qing, described it on GitHub as follows: &amp;ldquo;FastDFS is an open source high performance distributed file system. It&amp;rsquo;s major functions include: file storing, file syncing and file accessing (file uploading and file downloading), and it can resolve the high capacity and load balancing problem. FastDFS should meet the requirement of the website whose service based on files such as photo sharing site and video sharing site.&amp;rdquo; This means FastDFS is an open-source high-performance distributed file system. Its core functionalities include file storage, file synchronization, and file access (uploading and downloading), addressing challenges of large-scale storage and load balancing. It is designed to meet the needs of file-service-oriented websites like photo or video sharing platforms.&lt;/p&gt;&#xA;&lt;p&gt;FastDFS has two roles: Tracker and Storage. The Tracker is responsible for scheduling file access requests and load balancing. Storage manages file operations, including storage, synchronization, and providing file access interfaces. It also handles metadata, represented as key-value attribute pairs associated with files. Both Tracker and Storage nodes can be composed of one or multiple servers. Servers can be added or removed without disrupting services, though at least one server in each cluster must remain operational. Notably, all servers in a Tracker cluster operate in a peer-to-peer (P2P) manner, allowing dynamic scaling based on server workload.&lt;/p&gt;&#xA;&lt;p&gt;Additionally, the official documentation elaborates on the storage architecture. To support massive capacity, the Storage nodes adopt a volume (or group) organizing approach. The storage system consists of one or more independent volumes, where the total system capacity equals the sum of all volumes. Each volume can be hosted by one or multiple Storage servers. All servers within the same volume store identical files, serving purposes of redundant backup and load balancing. Adding servers to a volume&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;When adding a new server, the system automatically performs file synchronization. Once synchronization is complete, the system automatically switches the new server online to provide services. When storage space is insufficient or near depletion, volumes can be dynamically expanded. Simply add one or more servers and configure them as new volumes to increase the storage system&amp;rsquo;s capacity. We will not delve too deeply into the concepts of volumes or groups here, as there will be detailed explanations in the subsequent installation and deployment.&lt;/p&gt;&#xA;&lt;p&gt;In FastDFS, the file identifier consists of two parts: the volume name and the file name.&lt;/p&gt;&#xA;&lt;h2 id=&#34;environment-specifications&#34;&gt;Environment Specifications&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Operating System: CentOS Linux release 7.2.1511&lt;/li&gt;&#xA;&lt;li&gt;System Disk: 274GB&lt;/li&gt;&#xA;&lt;li&gt;Mounted Disks: 3.7TB * 12&lt;/li&gt;&#xA;&lt;li&gt;CPU: 32 cores (Intel® Xeon®)&lt;/li&gt;&#xA;&lt;li&gt;Memory: 8GB&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;architecture-design&#34;&gt;Architecture Design&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Workflow&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The client sends a request to the Tracker.&lt;/li&gt;&#xA;&lt;li&gt;The Tracker retrieves metadata from Storage nodes and returns it to the client.&lt;/li&gt;&#xA;&lt;li&gt;The client uses the metadata to directly request files from Storage nodes.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-design-principles&#34;&gt;Key Design Principles&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;The core system contains two roles: &lt;strong&gt;Tracker Server&lt;/strong&gt; and &lt;strong&gt;Storage Server&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;All Tracker servers are peer-to-peer (P2P) with no Master-Slave relationships.&lt;/li&gt;&#xA;&lt;li&gt;Storage servers are organized into &lt;strong&gt;groups&lt;/strong&gt;; files are fully replicated within the same group.&lt;/li&gt;&#xA;&lt;li&gt;Storage servers across different groups do not communicate. Synchronization occurs only within the same group.&lt;/li&gt;&#xA;&lt;li&gt;Storage servers proactively report status to Trackers. Each Tracker maintains complete Storage server status records.&lt;/li&gt;&#xA;&lt;li&gt;When the &lt;strong&gt;Trunk&lt;/strong&gt; feature is enabled, Trackers coordinate with Storages to elect a Trunk-Server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;cluster-deployment&#34;&gt;Cluster Deployment&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;Table 1 Software List and Versions&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Name&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;          &lt;th&gt;Link&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CentOS&lt;/td&gt;&#xA;          &lt;td&gt;7.x (Installation OS)&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;libfastcommon&lt;/td&gt;&#xA;          &lt;td&gt;Utility function package for FastDFS&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;libfastcommon V1.0.39&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;FastDFS&lt;/td&gt;&#xA;          &lt;td&gt;FastDFS Main Program&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;FastDFS V5.11&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;fastdfs-nginx-module&lt;/td&gt;&#xA;          &lt;td&gt;FastDFS-Nginx integration module (resolves intra-group sync delay)&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.22.tar.gz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;fastdfs-nginx-module V1.22&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;nginx&lt;/td&gt;&#xA;          &lt;td&gt;nginx 1.12.2 (Latest version via YUM for CentOS 7)&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://nginx.org/download/nginx-1.17.4.tar.gz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;nginx 1.17.4&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Table 2 Server IPs, Service Allocation, and Port Planning&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Name&lt;/th&gt;&#xA;          &lt;th&gt;IP Address&lt;/th&gt;&#xA;          &lt;th&gt;Application Service&lt;/th&gt;&#xA;          &lt;th&gt;Port&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Machine A&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.136&lt;/td&gt;&#xA;          &lt;td&gt;tracker&lt;/td&gt;&#xA;          &lt;td&gt;22122&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.136&lt;/td&gt;&#xA;          &lt;td&gt;storage-group1&lt;/td&gt;&#xA;          &lt;td&gt;23000&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.136&lt;/td&gt;&#xA;          &lt;td&gt;storage-group2&lt;/td&gt;&#xA;          &lt;td&gt;33000&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.136&lt;/td&gt;&#xA;          &lt;td&gt;libfastcommon&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.136&lt;/td&gt;&#xA;          &lt;td&gt;nginx&lt;/td&gt;&#xA;          &lt;td&gt;8888&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.136&lt;/td&gt;&#xA;          &lt;td&gt;fastdfs-nginx-module&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Machine B&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;10.58.10.137&lt;/td&gt;&#xA;          &lt;td&gt;tracker&lt;/td&gt;&#xA;          &lt;td&gt;22122&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;|   | 10.58.10.137   | storage-group1          | 23000 |&#xA;|   | 10.58.10.137   | storage-group3          | 43000 |&#xA;|   | 10.58.10.137   | libfastcommon           | -     |&#xA;|   | 10.58.10.137   | nginx                   | 8888  |&#xA;|   | 10.58.10.137   | fastdfs-nginx-module    | -     |&#xA;|Machine C|           |                        |       |&#xA;|   | 10.58.10.138   | tracker                 | 22122 |&#xA;|   | 10.58.10.138   | storage-group2          | 33000 |&#xA;|   | 10.58.10.138   | storage-group23         | 43000 |&#xA;|   | 10.58.10.138   | libfastcommon           | -     |&#xA;|   | 10.58.10.138   | nginx                   | 8888  |&#xA;|   | 10.58.10.138   | fastdfs-nginx-module    | -     |&lt;/p&gt;&#xA;&lt;p&gt;Prerequisites before installation:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ensure to grant read and write permissions to the storage directories (logs, data, PID files, etc.) that will be used.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;All configuration files in the following sections contain comments marked with &amp;ldquo;#&amp;rdquo; for explanations. Be sure to remove these comment lines that start with &amp;ldquo;#&amp;rdquo; when implementing the configurations.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;initialize-environment&#34;&gt;Initialize Environment&#xD;&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Install build environment&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yum groups install Development Tools perl redhat-rpm-config.noarch gd-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl openssl-devel gcc-c++ autoconf automake zlib-devel libxml2 libxml2-dev libxslt-devel GeoIP GeoIP-devel GeoIP-data gperftools-y&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;install-libfastcommon&#34;&gt;Install libfastcommon&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;Execute the following operations on machines A, B, and C respectively:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tar -zxvf libfastcommon-1.0.39.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; libfastcommon-1.0.39/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./make.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./make.sh install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;libfastcommon is installed to &lt;code&gt;/usr/lib64/libfastcommon.so&lt;/code&gt;. Note the difference between new and old versions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;New versions&lt;/strong&gt; will automatically create a symlink for &lt;code&gt;libfastcommon.so&lt;/code&gt; to the &lt;code&gt;/usr/local/lib&lt;/code&gt; directory.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Old versions&lt;/strong&gt; require manual symlink creation:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;If &lt;code&gt;libfdfsclient.so&lt;/code&gt; exists, also add it to &lt;code&gt;/usr/local/lib&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;!!! Note&#xA;It&amp;rsquo;s recommended to manually verify successful symlink creation using:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ls &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep libfastcommon&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;Check in both `/usr/lib/` and `/usr/local/lib` directories.&#xD;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;install-tracker&#34;&gt;Install Tracker&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;Perform the following operations on machines A, B, and C respectively&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p /data/fastdfs/tracker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tar -zxvf fastdfs-5.11.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cd fastdfs-5.11/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./make.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./make.sh install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Prepare configuration files&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf # For tracker node&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Modify tracker configuration file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim /etc/fdfs/tracker.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Required modifications:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;max_connections=1024 # default 256, maximum number of connections&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;port=22122 # tracker server port (default 22122, usually unchanged)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;base_path=/data/fastdfs/tracker # root directory for storing logs and data&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Add tracker.service to enable service management with systemctl (start/restart/stop) and auto-start on boot:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Edit service file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim /usr/lib/systemd/system/fastdfs-tracker.service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Unit]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Description=The FastDFS File server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;After=network.target remote-fs.target nss-lookup.target&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Service]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Type=forking&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ExecStart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ExecStop=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ExecRestart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Install]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WantedBy=multi-user.target&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;After saving the /usr/lib/systemd/system/fastdfs-tracker.service file and exiting vim, execute the following commands to start the FastDFS Tracker service:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;systemctl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;daemon&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;reload&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;systemctl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enable&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fastdfs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tracker&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;service&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;systemctl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fastdfs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tracker&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;service&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;After the tracker service starts, use the following command to verify if the port is properly opened:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;netstat -tulnp | grep 22122  # Check if the service is running and the port is open  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;install-storage&#34;&gt;Install Storage&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;Skip the extraction step if already performed during tracker installation.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ tar -zxvf fastdfs-5.11.tar.gz  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cd fastdfs-5.11/  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./make.sh  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./make.sh install  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;machine-a-group1group2&#34;&gt;Machine A (group1/group2)&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;Copy storage configuration files under fastdfs-5.11 directory (make two copies)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mkdir -p /data/fastdfs/storage/group1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mkdir -p /data/fastdfs/storage/group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage-group1.conf #storage node group1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage-group2.conf #storage node group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #client config for testing&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;According to architecture design, modify the three files sequentially:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Modify group1 configuration file: /etc/fdfs/storage-group1.conf&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo vim /etc/fdfs/storage-group2.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# The following content needs to be modified:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;group_name=group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;port=33000 # Storage service port (default 23000, modified to 33000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;base_path=/data/fastdfs/storage/group2 # Root directory for data and log file storage&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path_count=6&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path0=/data07/fastdfs # First storage directory for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path1=/data08/fastdfs # Second storage directory for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path2=/data09/fastdfs # Third storage directory for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path3=/data10/fastdfs # Fourth storage directory for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path4=/data11/fastdfs # Fifth storage directory for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;store_path5=/data12/fastdfs # Sixth storage directory for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tracker_server=10.58.10.136:22122 # Tracker server IP and port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tracker_server=10.58.10.137:22122 # Tracker server IP and port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tracker_server=10.58.10.138:22122 # Tracker server IP and port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http.server_port=8888 # HTTP access port for files (default 8888, modify as needed to match Nginx configuration)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Modify client configuration file: /etc/fdfs/client.conf&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo vim /etc/fdfs/client.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# The following content needs to be modified:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;base_path=/data/fastdfs/client&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tracker_server=10.58.10.136:22122 # Tracker server IP and port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tracker_server=10.58.10.137:22122 # Tracker server IP and port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tracker_server=10.58.10.138:22122 # Tracker server IP and port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;After setting up the Storage service, we start the two services for Storage:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;systemctl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;daemon&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;reload&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;systemctl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enable&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fastdfs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;group1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;service&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;systemctl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;start&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fastdfs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;group1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;service&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Possible issues during startup:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The service might fail to start due to permission issues or configuration errors.&lt;/li&gt;&#xA;&lt;li&gt;Check service status using:&lt;br&gt;&#xA;&lt;code&gt;systemctl status fastdfs-storage-group1.service&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Analyze logs (located at &lt;code&gt;/data/fastdfs/storage/group1/logs/&lt;/code&gt;) to troubleshoot.&lt;/li&gt;&#xA;&lt;li&gt;Refer to the &amp;ldquo;Troubleshooting&amp;rdquo; section for common pitfalls.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Verify service activation:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;netstat -tulnp  # Check if services are running and ports are open (23000, 33000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Check FastDFS cluster status after successful startup:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# View cluster status&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ fdfs_monitor /etc/fdfs/storage-group1.conf list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;??? note &amp;ldquo;Info&amp;rdquo;&lt;br&gt;&#xA;[Cluster status details will be shown here]&lt;/p&gt;&#xA;&lt;p&gt;The console printed the following information, indicating success:&#xA;[2018-11-06 00:00:00] DEBUG - base_path=/data/fastdfs/storage/group1, connect_timeout=30, network_timeout=60, tracker_server_count=2, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0&#xA;server_count=3, server_index=0&#xA;tracker server is 10.58.10.136:22122,10.58.10.137:22122,10.58.10.138:22122&#xA;group count: 2&#xA;Group 1:&#xA;&amp;hellip;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Test file upload via client&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fdfs_upload_file&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;etc&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fdfs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;conf&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;test&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;machine-b-group1group3&#34;&gt;Machine B (group1/group3)&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;The configuration process is similar to Machine A, with the following modifications:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Create directories and copy configuration files&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo mkdir -p /data/fastdfs/storage/group1  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo mkdir -p /data/fastdfs/storage/group3  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage-group1.conf  # Storage node configuration for group1  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage-group3.conf  # Storage node configuration for group3  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf          # Client configuration for testing  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Modify the configuration file for group3&lt;/strong&gt; (&lt;code&gt;/etc/fdfs/storage-group3.conf&lt;/code&gt;). The configuration for group1 remains consistent with Machine A.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo vim /etc/fdfs/storage-group3.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Required modifications are as follows:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;group_name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;group3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;port&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;43000&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# Storage service port (default: 23000, modified to 43000)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;base_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data/fastdfs/storage/group3 &lt;span class=&#34;c1&#34;&gt;# Root directory for data and log files&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path_count&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;6&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data07/fastdfs &lt;span class=&#34;c1&#34;&gt;# First storage directory for group3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data08/fastdfs &lt;span class=&#34;c1&#34;&gt;# Second storage directory for group3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data09/fastdfs &lt;span class=&#34;c1&#34;&gt;# Third storage directory for group3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data10/fastdfs &lt;span class=&#34;c1&#34;&gt;# Fourth storage directory for group3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data11/fastdfs &lt;span class=&#34;c1&#34;&gt;# Fifth storage directory for group3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;store_path5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data12/fastdfs &lt;span class=&#34;c1&#34;&gt;# Sixth storage directory for group3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;tracker_server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;10.58.10.136:22122 &lt;span class=&#34;c1&#34;&gt;# Tracker server IP and port&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;tracker_server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;10.58.10.137:22122 &lt;span class=&#34;c1&#34;&gt;# Tracker server IP and port&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;tracker_server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;10.58.10.138:22122 &lt;span class=&#34;c1&#34;&gt;# Tracker server IP and port&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http.server_port&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8888&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# HTTP file access port (default: 8888, keep consistent with Nginx)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The client configuration remains consistent with Machine A, no duplication needed here.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Create a service for starting group3. The configuration for fastdfs-storage-group1.service is identical to Machine A - simply copy it.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Execute the startup script until both fastdfs-storage-group1.service and fastdfs-storage-group3.service are running.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;configuration-for-machine-c-group2group3&#34;&gt;Configuration for Machine C (Group2/Group3)&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;The configuration process is similar to Machine A, with the following modifications:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Create directories and copy configuration files&lt;/strong&gt;:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo mkdir -p /data/fastdfs/storage/group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo mkdir -p /data/fastdfs/storage/group3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage-group2.conf  # Storage node for group2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage-group3.conf  # Storage node for group3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf  # Client configuration file (for testing)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Modify the configuration file for Group2&lt;/strong&gt; (&lt;code&gt;/etc/fdfs/storage-group2.conf&lt;/code&gt;). The configuration content for Group3 should remain consistent with Machine B&amp;rsquo;s settings.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;configuration-file-for-fastdfs-storage-group2&#34;&gt;Configuration file for FastDFS Storage group2&#xD;&#xA;&lt;/h1&gt;&lt;p&gt;$ sudo vim /etc/fdfs/storage-group2.conf&lt;/p&gt;&#xA;&lt;h1 id=&#34;modified-configurations&#34;&gt;Modified configurations:&#xD;&#xA;&lt;/h1&gt;&lt;p&gt;group_name=group2&#xA;port=33000 # Storage service port (default 23000, modified to 33000)&#xA;base_path=/data/fastdfs/storage/group2 # Root directory for data and log storage&#xA;store_path_count=6&#xA;store_path0=/data01/fastdfs # First storage directory for group2&#xA;store_path1=/data02/fastdfs # Second storage directory for group2&#xA;store_path2=/data03/fastdfs # Third storage directory for group2&#xA;store_path3=/data04/fastdfs # Fourth storage directory for group2&#xA;store_path4=/data05/fastdfs # Fifth storage directory for group2&#xA;store_path5=/data06/fastdfs # Sixth storage directory for group2&#xA;tracker_server=10.58.10.136:22122 # Tracker server IP and port&#xA;tracker_server=10.58.10.137:22122 # Tracker server IP and port&#xA;tracker_server=10.58.10.138:22122 # Tracker server IP and port&#xA;http.server_port=8888 # HTTP file access port (default 8888, should match nginx configuration)&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The client configuration file is consistent with Machine A, no repetition needed here.&lt;/li&gt;&#xA;&lt;li&gt;Create startup services for group2 and group3 (existing templates can be copied directly).&lt;/li&gt;&#xA;&lt;li&gt;Execute startup scripts until both fastdfs-storage-group2.service and fastdfs-storage-group3.services are running.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;installing-nginx-and-the-fastdfs-nginx-module&#34;&gt;Installing Nginx and the FastDFS Nginx Module&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;Step 1: In the FastDFS directory, copy the http.conf and mime.types files to the /etc/fdfs directory to enable Nginx access to the Storage service.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Execute on all three machines&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cp ./conf/http.conf /etc/fdfs/ # For Nginx access&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cp ./conf/mime.types /etc/fdfs/ # For Nginx access&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Step 2: Install the FastDFS Nginx module:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Execute on all three machines&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ tar -zxvf V1.20.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cp fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Step 3: Modify the configuration file in fastdfs-nginx-module-1.20/src/config. Locate the &lt;code&gt;ngx_module_incs&lt;/code&gt; and &lt;code&gt;CORE_INCS&lt;/code&gt; entries and modify them as follows:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ngx_module_incs=&amp;#34;/usr/include/fastdfs /usr/include/fastcommon/&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CORE_INCS=&amp;#34;$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;If not modified, the following error will occur during Nginx compilation:&lt;br&gt;&#xA;&lt;code&gt;/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Step 4: Then extract and install the Nginx service:&lt;/p&gt;&#xA;&lt;p&gt;$ tar -zxvf nginx-1.12.2.tar.gz&#xA;$ cd nginx-1.12.2&#xA;$ ./configure &amp;ndash;prefix=/usr/share/nginx &amp;ndash;sbin-path=/usr/sbin/nginx &amp;ndash;modules-path=/usr/lib64/nginx/modules &amp;ndash;conf-path=/etc/nginx/nginx.conf &amp;ndash;error-log-path=/var/log/nginx/error.log &amp;ndash;http-log-path=/var/log/nginx/access.log &amp;ndash;http-client-body-temp-path=/var/lib/nginx/tmp/client_body &amp;ndash;http-proxy-temp-path=/var/lib/nginx/tmp/proxy &amp;ndash;http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi &amp;ndash;http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi &amp;ndash;http-scgi-temp-path=/var/lib/nginx/tmp/scgi &amp;ndash;pid-path=/run/nginx.pid &amp;ndash;lock-path=/run/lock/subsys/nginx &amp;ndash;user=nginx &amp;ndash;group=nginx &amp;ndash;with-file-aio &amp;ndash;with-ipv6 &amp;ndash;with-http_auth_request_module &amp;ndash;with-http_ssl_module &amp;ndash;with-http_v2_module &amp;ndash;with-http_realip_module &amp;ndash;with-http_addition_module &amp;ndash;with-http_xslt_module=dynamic &amp;ndash;with-http_image_filter_module=dynamic &amp;ndash;with-http_geoip_module=dynamic &amp;ndash;with-http_sub_module &amp;ndash;with-http_dav_module &amp;ndash;with-http_flv_module &amp;ndash;with-http_mp4_module &amp;ndash;with-http_gunzip_module &amp;ndash;with-http_gzip_static_module &amp;ndash;with-http_random_index_module &amp;ndash;with-http_secure_link_module &amp;ndash;with-http_degradation_module &amp;ndash;with-http_slice_module &amp;ndash;with-http_stub_status_module &amp;ndash;with-http_perl_module=dynamic &amp;ndash;with-mail=dynamic &amp;ndash;with-mail_ssl_module &amp;ndash;with-pcre &amp;ndash;with-pcre-jit &amp;ndash;with-stream=dynamic &amp;ndash;with-stream_ssl_module &amp;ndash;with-google_perftools_module &amp;ndash;with-debug &amp;ndash;with-cc-opt=&amp;rsquo;-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong &amp;ndash;param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic&amp;rsquo; &amp;ndash;with-ld-opt=&amp;rsquo;-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E&amp;rsquo; &amp;ndash;add-module=${YOUR_PATH}/fastdfs-nginx-module-1.20/src&#xA;$ make&#xA;$ make install&lt;/p&gt;&#xA;&lt;p&gt;Note: Replace ${YOUR_PATH} in the above with the parent directory of fastdfs-nginx-module-1.20 to ensure the path is correct.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Modify configuration file /etc/fdfs/mod_fastdfs.conf on Machine A:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;connect_timeout=2&lt;br&gt;&#xA;network_timeout=30&lt;br&gt;&#xA;base_path=/data/fastdfs/ngx_mod&lt;br&gt;&#xA;load_fdfs_parameters_from_tracker=true&lt;br&gt;&#xA;storage_sync_file_max_delay = 86400&lt;br&gt;&#xA;use_storage_id = false&lt;br&gt;&#xA;storage_ids_filename = storage_ids.conf&lt;br&gt;&#xA;tracker_server=10.58.10.136:22122 # Tracker server IP and port&lt;br&gt;&#xA;tracker_server=10.58.10.137:22122 # Tracker server IP and port&lt;br&gt;&#xA;tracker_server=10.58.10.138:22122 # Tracker server IP and port&lt;br&gt;&#xA;group_name=group1/group2  # Global setting&lt;br&gt;&#xA;url_have_group_name = true&lt;br&gt;&#xA;log_level=info&lt;br&gt;&#xA;log_filename=&lt;br&gt;&#xA;response_mode=proxy&lt;br&gt;&#xA;if_alias_prefix=&lt;br&gt;&#xA;flv_support = true&lt;br&gt;&#xA;flv_extension = flv&lt;br&gt;&#xA;group_count = 2&lt;/p&gt;&#xA;&lt;p&gt;[group1]&lt;br&gt;&#xA;group_name=group1   # Group-specific&lt;br&gt;&#xA;storage_server_port=23000&lt;br&gt;&#xA;store_path_count=6&lt;br&gt;&#xA;store_path0=/data01/fastdfs&lt;br&gt;&#xA;store_path1=/data02/fastdfs&lt;br&gt;&#xA;store_path2=/data03/fastdfs&lt;br&gt;&#xA;store_path3=/data04/fastdfs&lt;br&gt;&#xA;store_path4=/data05/fastdfs&lt;br&gt;&#xA;store_path5=/data06/fastdfs&lt;/p&gt;&#xA;&lt;p&gt;[group2]&lt;br&gt;&#xA;group_name=group2&lt;br&gt;&#xA;storage_server_port=33000&lt;br&gt;&#xA;store_path_count=6&lt;br&gt;&#xA;store_path0=/data07/fastdfs&lt;br&gt;&#xA;store_path1=/data08/fastdfs&lt;br&gt;&#xA;store_path2=/data09/fastdfs&lt;br&gt;&#xA;store_path3=/data10/fastdfs&lt;br&gt;&#xA;store_path4=/data11/fastdfs&lt;br&gt;&#xA;store_path5=/data12/fastdfs&lt;/p&gt;&#xA;&lt;p&gt;user nginx;&#xA;worker_processes on;&#xA;worker_rlimit_nofile 65535;&lt;/p&gt;&#xA;&lt;p&gt;error_log /var/log/nginx/error.log;&#xA;pid /run/nginx.pid;&lt;/p&gt;&#xA;&lt;p&gt;include /usr/share/nginx/modules/*.conf;&lt;/p&gt;&#xA;&lt;p&gt;events {&#xA;worker_connections 65535;&#xA;use epoll;&#xA;accept_mutex off;&#xA;}&lt;/p&gt;&#xA;&lt;p&gt;http {&#xA;log_format  main  &amp;lsquo;$remote_addr - $remote_user [$time_local] &amp;ldquo;$request&amp;rdquo; &amp;rsquo;&#xA;&amp;lsquo;$status $body_bytes_sent &amp;ldquo;$http_referer&amp;rdquo; &amp;rsquo;&#xA;&amp;lsquo;&amp;quot;$http_user_agent&amp;quot; &amp;ldquo;$http_x_forwarded_for&amp;rdquo;&amp;rsquo;;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;access_log  /var/log/nginx/access.log  main;&#xD;&#xA;&#xD;&#xA;sendfile            on;&#xD;&#xA;tcp_nopush          on;&#xD;&#xA;tcp_nodelay         on;&#xD;&#xA;keepalive_timeout   65;&#xD;&#xA;types_hash_max_size 2048;&#xD;&#xA;gzip                on;&#xD;&#xA;&#xD;&#xA;server_names_hash_bucket_size 128;&#xD;&#xA;client_header_buffer_size 32k;&#xD;&#xA;larger_client_header_buffers 4 32k;&#xD;&#xA;client_max_body_size 300m;&#xD;&#xA;&#xD;&#xA;proxy_redirect off;&#xD;&#xA;proxy_http_version 1.1;&#xD;&#xA;proxy_set_header Connection &#39;&#39;;&#xD;&#xA;proxy_set_header REMOTE-HOST $remote_addr;&#xD;&#xA;proxy_set_header Host $host;&#xD;&#xA;proxy_set_header X-Real-IP $remote_addr;&#xD;&#xA;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&#xD;&#xA;proxy_connect_timeout 90;&#xD;&#xA;proxy_send_timeout   90;&#xD;&#xA;proxy_read_timeout   90;&#xD;&#xA;proxy_buffer_size 16k;&#xD;&#xA;proxy_buffers 8 64k;&#xD;&#xA;proxy_busy_buffers_size 128k;&#xD;&#xA;proxy_temp_file_write_size 128k;&#xD;&#xA;&#xD;&#xA;proxy_cache_path /data/fastdfs/cache/nginx/proxy_cache levels=1:2&#xD;&#xA;keys_zone=http-cache:200m max_size=1g inactive=30d;&#xD;&#xA;proxy_temp_path /data/fastdfs/cache/nginx/proxy_cache/temp;&#xD;&#xA;&#xD;&#xA;include             /etc/nginx/mime.types;&#xD;&#xA;default_type        application/octet-stream;&#xD;&#xA;&#xD;&#xA;include /etc/nginx/conf.d/*.conf;&#xD;&#xA;&#xD;&#xA;server {&#xD;&#xA;    listen       80 default_server;&#xD;&#xA;    listen       [::]:80 default_server;&#xD;&#xA;    server_name  _;&#xD;&#xA;    root         /usr/share/nginx/html;&#xD;&#xA;&#xD;&#xA;    # Load default server block configuration&#xD;&#xA;    #include /etc/nginx/default.d/*.conf;&#xD;&#xA;&#xD;&#xA;    location ~ ^/ok(\..*)?$ {&#xD;&#xA;        return 200 &amp;quot;OK&amp;quot;;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    location /nginx {&#xD;&#xA;        stub_status on;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    location /healthcheck {&#xD;&#xA;        check_status on;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    location ^~ /group1/ {&#xD;&#xA;        proxy_next_upstream http_502 http_504 error timeout invalid_header;&#xD;&#xA;        proxy_cache http-cache;&#xD;&#xA;        proxy_cache_valid 200 304 12h;&#xD;&#xA;        proxy_cache_key $uri$is_args$args;&#xD;&#xA;&#xD;&#xA;        add_header &#39;Access-Control-Allow-Origin&#39; $http_origin;&#xD;&#xA;        add_header &#39;Access-Control-Allow-Credentials&#39; &#39;true&#39;;&#xD;&#xA;        add_header &amp;quot;Access-Control-Allow-Methods&amp;quot; &amp;quot;GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH&amp;quot;;&#xD;&#xA;        add_header &amp;quot;Access-Control-Allow-Headers&amp;quot; &amp;quot;Origin, No-Cache, Authorization, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type&amp;quot;;&#xD;&#xA;        if ($request_method = &#39;OPTIONS&#39;) {&#xD;&#xA;            return 200 &#39;OK&#39;;&#xD;&#xA;        }&#xD;&#xA;&#xD;&#xA;        proxy_pass http://fdfs_group1;&#xD;&#xA;        expires 30d;&#xD;&#xA;    }&#xD;&#xA;    location ^~ /group2/ {&#xD;&#xA;        proxy_next_upstream http_502 http_504 error timeout invalid_header;&#xD;&#xA;        proxy_cache http-cache;&#xD;&#xA;        proxy_cache_valid 200 304 12h;&#xD;&#xA;        proxy_cache_key $uri$is_args$args;&#xD;&#xA;&#xD;&#xA;        add_header &#39;Access-Control-Allow-Origin&#39; $http_origin;&#xD;&#xA;        add_header &#39;Access-Control-Allow-Credentials&#39; &#39;true&#39;;&#xD;&#xA;        add_header &amp;quot;Access-Control-Allow-Methods&amp;quot; &amp;quot;GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH&amp;quot;;&#xD;&#xA;        add_header &amp;quot;Access-Control-Allow-Headers&amp;quot; &amp;quot;Origin, No-Cache, Authorization, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type&amp;quot;;&#xD;&#xA;        if ($request_method = &#39;OPTIONS&#39;) {&#xD;&#xA;            return 200 &#39;OK&#39;;&#xD;&#xA;        }&#xD;&#xA;&#xD;&#xA;        proxy_pass http://fdfs_group2;&#xD;&#xA;        expires 30d;&#xD;&#xA;    }&#xD;&#xA;    location ^~ /group3/ {&#xD;&#xA;        proxy_next_upstream http_502 http_504 error timeout invalid_header;&#xD;&#xA;        proxy_cache http-cache;&#xD;&#xA;        proxy_cache_valid 200 304 12h;&#xD;&#xA;        proxy_cache_key $uri$is_args$args;&#xD;&#xA;&#xD;&#xA;        add_header &#39;Access-Control-Allow-Origin&#39; $http_origin;&#xD;&#xA;        add_header &#39;Access-Control-Allow-Credentials&#39; &#39;true&#39;;&#xD;&#xA;        add_header &amp;quot;Access-Control-Allow-Methods&amp;quot; &amp;quot;GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH&amp;quot;;&#xD;&#xA;        add_header &amp;quot;Access-Control-Allow-Headers&amp;quot; &amp;quot;Origin, No-Cache, Authorization, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type&amp;quot;;&#xD;&#xA;        if ($request_method = &#39;OPTIONS&#39;) {&#xD;&#xA;            return 200 &#39;OK&#39;;&#xD;&#xA;        }&#xD;&#xA;&#xD;&#xA;        proxy_pass http://fdfs_group3;&#xD;&#xA;        expires 30d;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    location ~/purge(/.*) {&#xD;&#xA;        allow 127.0.0.1;&#xD;&#xA;        allow 192.168.1.0/24;&#xD;&#xA;        allow 10.58.1.0/24;&#xD;&#xA;        deny all;&#xD;&#xA;        proxy_cache_purge http-cache $1$is_args$args;&#xD;&#xA;    }&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;server {&#xD;&#xA;    listen 8888;&#xD;&#xA;    server_name localhost;&#xD;&#xA;    &#xD;&#xA;    location /ok.htm {&#xD;&#xA;        return 200 &amp;quot;OK&amp;quot;;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    location ~/group[0-9]/ {&#xD;&#xA;        ngx_fastdfs_module;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    error_page 500 502 503 504 /50x.html;&#xD;&#xA;    location = /50x.html {&#xD;&#xA;        root html;&#xD;&#xA;    }&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;upstream fdfs_group1 {&#xD;&#xA;    server 10.58.10.136:8888 max_fails=0;&#xD;&#xA;    server 10.58.10.137:8888 max_fails=0;&#xD;&#xA;&#xD;&#xA;    keepalive 10240;&#xD;&#xA;    check interval=2000 rise=2 fall=3 timeout=1000 type=http default_down=false;&#xD;&#xA;    check_http_send &amp;quot;GET /ok.htm HTTP/1.0\r\nConnection:keep-alive\r\n\r\n&amp;quot;;&#xD;&#xA;    check_keepalive_requests 100;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;upstream fdfs_group2 {&#xD;&#xA;    server 10.58.10.136:8888 max_fails=0;&#xD;&#xA;    server 10.58.10.138:8888 max_fails=0;&#xD;&#xA;&#xD;&#xA;    keepalive 10240;&#xD;&#xA;    check interval=2000 rise=2 fall=3 timeout=1000 type=http default_down=false;&#xD;&#xA;    check_http_send &amp;quot;GET /ok.htm HTTP/1.0\r\nConnection:keep-alive\r\n\r\n&amp;quot;;&#xD;&#xA;    check_keepalive_requests 100;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;upstream fdfs_group3 {&#xD;&#xA;    server 10.58.10.137:8888 max_fails=0;&#xD;&#xA;    server 10.58.10.138:8888 max_fails=0;&#xD;&#xA;&#xD;&#xA;    keepalive 10240;&#xD;&#xA;    check interval=2000 rise=2 fall=3 timeout=1000 type=http default_down=false;&#xD;&#xA;    check_http_send &amp;quot;GET /ok.htm HTTP/1.0\r\nConnection:keep-alive\r\n\r\n&amp;quot;;&#xD;&#xA;    check_keepalive_requests 100;&#xD;&#xA;}&#xD;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start the nginx service:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;sudo nginx -c /etc/nginx/nginx.conf&lt;/p&gt;&#xA;&lt;p&gt;Access http://localhost/ok.htm to verify if it returns a 200 status code with &amp;ldquo;OK&amp;rdquo; content. If startup fails, check the nginx logs located at /var/log/nginx/error.log. This is the default error log path for nginx in CentOS. If the error_log configuration has been modified, check the log file specified in the error_log directive.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The configurations for servers B and C are essentially identical, with completely consistent nginx configuration files. The only required modification is in the /etc/fdfs/mod_fastdfs.conf file: adjust the group_name according to the corresponding storage node configuration. Note that the [groupX] identifiers in square brackets must follow sequential increments starting from 1.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;issue-summary&#34;&gt;Issue Summary&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;When encountering issues, first, we troubleshoot service startup failures through console log messages; second, investigate via service logs. In most cases, logs are the most effective troubleshooting tool, bar none.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Logs for &lt;strong&gt;tracker&lt;/strong&gt; or &lt;strong&gt;storage&lt;/strong&gt; services are stored under the &lt;code&gt;logs&lt;/code&gt; directory within the path specified by the &lt;code&gt;base_path&lt;/code&gt; configuration in their respective service configuration files.&lt;/li&gt;&#xA;&lt;li&gt;For &lt;strong&gt;nginx logs&lt;/strong&gt;, if a custom log path is configured, check the specified directory. By default on CentOS, logs are typically located under &lt;code&gt;/var/log/nginx/&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Additionally, in this environment, we must also investigate logs for the &lt;strong&gt;fastdfs-nginx-module&lt;/strong&gt; extension. Its logs reside in the directory specified by the &lt;code&gt;base_path&lt;/code&gt; configuration in &lt;code&gt;/etc/fdfs/mod_fastdfs.conf&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;port-configuration-for-multiple-groups-in-a-cluster&#34;&gt;Port Configuration for Multiple Groups in a Cluster&#xD;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Each &lt;code&gt;group&lt;/code&gt; requires a dedicated &lt;code&gt;storage&lt;/code&gt; service. Thus, &lt;strong&gt;port numbers for storage groups on the same host must not conflict&lt;/strong&gt;. For example:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Group1: Port &lt;code&gt;23000&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Group2: Port &lt;code&gt;33000&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Group3: Port &lt;code&gt;43000&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Groups with the same name cannot exist on the same machine&lt;/strong&gt; because the tracker synchronizes storage services within the same group, which requires identical port numbers. Therefore, groups with the same name across different hosts must use the same storage port configuration.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;storage-path-configuration-for-multiple-groups-in-a-cluster&#34;&gt;Storage Path Configuration for Multiple Groups in a Cluster&#xD;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;On the same host&lt;/strong&gt;, storage paths for different groups must be configured separately and &lt;strong&gt;should not overlap&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Across different hosts&lt;/strong&gt;, storage paths for groups with the same name may differ, but the &lt;strong&gt;number of storage nodes and disk capacity should remain consistent&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;configuring-multiple-storage-services-on-the-same-node&#34;&gt;Configuring Multiple Storage Services on the Same Node&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;In a 3-node cluster, two groups were deployed on the same machine, with each group maintaining a replica on another node. When starting the services using &lt;code&gt;systemctl start fastdfs-storage-groupx.service&lt;/code&gt; (where &lt;code&gt;groupx&lt;/code&gt; represents group1, group2, or group3), one group repeatedly failed to start, displaying:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Loaded&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;loaded&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;usr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;systemd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;system&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fastdfs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;group1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;service&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enabled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vendor&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;preset&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;disabled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;...&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Active&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inactive&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dead&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;➔&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Active&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exited&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt;: A &lt;code&gt;systemctl daemon-reload&lt;/code&gt; is required before starting each storage service.&lt;br&gt;&#xA;&lt;strong&gt;Example&lt;/strong&gt;: To start both &lt;code&gt;fastdfs-storage-group1.service&lt;/code&gt; and &lt;code&gt;fastdfs-storage-group2.service&lt;/code&gt; on Machine A:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Start &lt;code&gt;fastdfs-storage-group1.service&lt;/code&gt;:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   systemctl daemon-reload  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   systemctl start fastdfs-storage-group1.service  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Start &lt;code&gt;fastdfs-storage-group2.service&lt;/code&gt;:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   systemctl daemon-reload  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   systemctl start fastdfs-storage-group2.service  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;FastDFS Storage Service Configuration&lt;/strong&gt;&lt;br&gt;&#xA;On all storage machines, when modifying &lt;code&gt;/etc/fdfs/mod_fastdfs.conf&lt;/code&gt;, adjust the &lt;code&gt;group_name&lt;/code&gt; value according to the respective group of each storage. Pay special attention to two configuration items. Below is an example using group2 and group3:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Global &lt;code&gt;group_name&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;&#xA;The &lt;code&gt;group_name&lt;/code&gt; in the global configuration must be separated by &amp;ldquo;/&amp;rdquo;, and its value should match the &lt;code&gt;group_name&lt;/code&gt; in local configurations. For example:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  group_name=group2/group3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Steps to Configure and Start Services&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Execute the following commands for group1:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   sudo systemctl daemon-reload&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; fastdfs-storage-group1.service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   sudo systemctl start fastdfs-storage-group1.service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Check the status of &lt;code&gt;fastdfs-storage-group1.service&lt;/code&gt;:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   systemctl status fastdfs-storage-group1.service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;If the status shows &lt;strong&gt;active (running)&lt;/strong&gt;, proceed to start &lt;code&gt;fastdfs-storage-group2.service&lt;/code&gt;. If not, check logs to troubleshoot:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   sudo systemctl daemon-reload&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; fastdfs-storage-group2.service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   sudo systemctl start fastdfs-storage-group3.service  &lt;span class=&#34;c1&#34;&gt;# Note: Verify group name consistency (group2 vs group3)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Monitor the status of &lt;code&gt;fastdfs-storage-group2.service&lt;/code&gt; until it becomes active.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;You may encounter a warning like &lt;code&gt;Unknown lvalue &#39;ExecRestart&#39; in section &#39;Service&#39;&lt;/code&gt;. A known workaround (&lt;code&gt;yum install systemd-*&lt;/code&gt;) might not resolve this issue. Contributions to fix this are welcome.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;FastDFS Nginx Module Configuration&lt;/strong&gt;&lt;br&gt;&#xA;When modifying &lt;code&gt;/etc/fdfs/mod_fastdfs.conf&lt;/code&gt; on storage machines:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ensure &lt;code&gt;group_name&lt;/code&gt; values are correctly set for each storage group (e.g., &lt;code&gt;group2&lt;/code&gt; and &lt;code&gt;group3&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Follow the global/local &lt;code&gt;group_name&lt;/code&gt; format as described above.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- Group configuration parsing results --&gt;&#xD;&#xA;&lt;p&gt;&amp;lt;group_entries&amp;gt;&#xA;&lt;group id=&#34;group1&#34; group_name=&#34;grou2&#34; /&gt;&#xA;&lt;group id=&#34;group2&#34; group_name=&#34;group3&#34; /&gt;&#xA;&amp;lt;/group_entries&amp;gt;&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
