<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 1. 數據存儲 在fdfs傳一份文件時,通常會返回下面的一串字符,這包含了該文件在服務器端一些存儲信息 ~~~ M00/00/00/wKg4C1tFmTWAFPKBAADdeFFxlXA240.png ~~~ 下面解釋一下這串東西都是什么: > 1. group1: > 是storage的組號,一個fastdfs集群可以有多個組,一個組內可以有多個storage節點(備份容災) > 2. M00: > Mxx:xx為十六進制字符,表示存放的基路徑(base path)序號。如果存放的base path只有一個,那固定就是M00,這樣FastDFS支持多個磁盤(base path),所以要通過Mxx來區分,其中xx為磁盤的序號,基于0。 > 數據就可以根據 > store_path0=/data/fastdfs/storage # 如果store_path0沒有就去找base_path存數據,兩個是一樣的,所有固定為M00 >3. /00/01/: >store_path0=/data/fastdfs/storage配置的目錄下的目錄,用于存放上傳的數據 1. store_path0下都是些什么? ![](https://box.kancloud.cn/fdc55598c881e4f419d9de726857ef18_1621x165.png) 所有的文件都在這些目錄下的一層目錄,存儲著上傳的所有數據,其中/data/sync目錄下存放著fastdfs的binlog日志 2. 支持多磁盤 Fastdfs支持多磁盤存儲,配置方法如下: 首先修改storage.conf ~~~ store_path_count=2 store_path0=磁盤1路徑 store_path1=磁盤2路徑 ~~~ 然后修改mod_fastdfs.conf(與上邊保持一致) ~~~ store_path_count=2 store_path0=磁盤1路徑 store_path1=磁盤2路徑 ~~~ ## 2. 同步記錄 ### 2.1 數據同步過程 #### 2.1.1 Storage Server中有兩類用于同步的線程: 1. Storage Server會為文件系統中的每一個Tracker啟動一個線程 1)用于與Tracker之間通信。 2)實現心跳反饋機制,默認每30秒發送向Tracker發送一次心跳包,包含同組內其他Storage信息。 3)通過這一線程從Tracker中獲取Storage列表信息 2. Storage會為同組的每一個Storage開啟一個線程 1)從Tracer獲取到同組內其他Storage Server信息,根據binlog向這些Storage Server同步數據(阻塞方式)。 2)如果組內有三個Storage,那么每個Storage都會啟動兩個線程用于向其他Storage同步數據。 3)打開/data/sync的mark文件,讀取目標Storage_Server_IP.mark文件,獲取對應的binlog文件以及同步的offset。 4)在對應的binlog文件中找到offset對應的文件操作,如果這已操作是源操作(CADT),則將操作將數據向外同步。同步完成后更新mark文件的offset值 #### 2.1.2 Storage Server同步相關目錄、文件: >當Storaged server啟動時會創建一個 base_path/data/sync 同步目錄,該目錄中的文件都是和同組內的其它 Storaged server之間的同步信息。 1. mark文件 例如下圖是同組內一個新加入storage后產生的mark文件。 ![](https://box.kancloud.cn/8c30e2fbccd54cf84c3da45fbc77b7e4_1086x200.png) 說明: 1)這個storage server對新入組的Storage Server發起了數據同步 2)數據同步的動作(增加,刪除)依據binlog.000中的記錄 3)同步的進度是binlog.000的2204(offset) 4)掃描了38行 5)同步了38行所記錄的操作 ~~~ # 目錄下結構 192.168.1.2_33450.mark 192.168.1.3_33450.mark binlog.000 binlog.index binlog.index # 記錄當前使用的Binlog文件序號,如為10,則表示使用binlog.010 binlog.100 # 真實地Binlog文件 192.168.1.2_33450.mark # 同步狀態文件,記錄本機到192.168.1.2_33450的同步狀態 ~~~ 2. binlog文件 > Binlog文件記錄文件上傳、刪除等更新操作(對文件的操作,而不是文件的內容),是數據同步的依據。 下面看看binlog到底記錄些什么? ![](https://box.kancloud.cn/061fd7c45b6cffe89929b0236fbb1531_1393x785.png) 說明: > 其中的每一條記錄都是使用空格符分成三個字段: > 1. 第一個字段: 表示文件upload時間戳 如:1529376942 > 2. 第二個字段: 表 示文件執行操作,值為: > C :表示源創建 > c:表示副本 > A:表示源追加 a:表示副本追加 D:表示源刪除 d:表示副本 T:表示源Truncate t:表示副本Trunca 其中源表示客戶端直接操作的那個Storage即為源,其他的Storage都為副本 > 3. 第三個字段為存儲文件信息描述 當上傳一個文件后,binlog文件多了這么一行`1531384360 C M00/00/00/wKg4C1tHEiiAWR8JAAAGkHPTQkQ1899.sh`,記錄了在這個Storage Server上上傳了一個文件;文件的存儲名為 `wKg4C1tHEiiAWR8JAAAGkHPTQkQ1899.sh`,C表示源創建,這時這個文件會向同組內的其他Storage Server同步該文件。 delete 亦是如此! ~~~ root@ubuntu03:~/fastdfs# fdfs_upload_file /etc/fdfs/client.conf ./stop.sh group2/M00/00/00/wKg4C1tHEiiAWR8JAAAGkHPTQkQ1899.sh ~~~ ![](https://box.kancloud.cn/8b56470917c92860d051b744e40bcb6d_802x118.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看