[ 
https://issues.apache.org/jira/browse/HDDS-6541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sammi Chen updated HDDS-6541:
-----------------------------
    Description: 
We have one subdirectory for each data volume under a db volume, with the 
StorageID(UUID) of the data volume as the name of the subdirectory.

When extra SSDs are used
 * Should create DbVolume to manage it for bad disk checking
 * Should create special directory structure including clusterID to be isolated 
with other stuff on the disk, e.g. */ssd1/db/CID-<clusterID>*
 * Should have a configuration item: “{*}hdds.datanode.container.db.dir{*}”
 * HddsVolume should be mapped to a dedicated subdir named after the StorageID 
of it, e.g. *DS-b559933f-9de3-4da4-a634-07d3a94f7438/*
 * Container metafile (e.g. 1.container under metadata) does not have to record 
the *dbPath* since now it is bind to the HddsVolume and we already know which 
HddsVolume the container resides.

 
/ssd1/

   |

   ` --db
           |
           `-- VERSION
           `-- CID-4886ca17-9739-4bc7-8e41-d97bb1175a76
                       |
                       `--{*}DS-b559933f-9de3-4da4-a634-07d3a94f7438{*}
                                   |
                                   |-- *container.db*     *← rocksdb instance*
                                   `-- db.checkpoints

 

 

When no SSD, use the same disk as data by default
 * Create container with the same disk where the block files resides
 * No DbVolume created, e.g. hddsVolume.dbVolume = null
 * Configuration item not specified
 * Could be easily migrated to a newly added SSD, e.g.

             *mv /data1/hdds/CID-<clusterID>/DS-<StorageID>  
/ssd1/db/CID-<clusterID>/*

 
/data1

   |

   `-- hdds
         |
          `-- VERSION
          `-- CID-4886ca17-9739-4bc7-8e41-d97bb1175a76
                 |
                 |-- current
                 |         |
                 |         `--containerDir0
                 |
                  `-- *DS-b559933f-9de3-4da4-a634-07d3a94f7438*

                           |
                           |-- *container.db*     *← rocksdb instance*
                           `-- db.checkpoints|

 

  was:
We have one subdirectory for each data volume under a db volume, with the 
StorageID(UUID) of the data volume as the name of the subdirectory.

When extra SSDs are used
 * Should create DbVolume to manage it for bad disk checking
 * Should create special directory structure including clusterID to be isolated 
with other stuff on the disk, e.g. */ssd1/db/CID-<clusterID>*
 * Should have a configuration item: “{*}hdds.datanode.container.db.dir{*}”
 * HddsVolume should be mapped to a dedicated subdir named after the StorageID 
of it, e.g. *DS-b559933f-9de3-4da4-a634-07d3a94f7438/*
 * Container metafile (e.g. 1.container under metadata) does not have to record 
the *dbPath* since now it is bind to the HddsVolume and we already know which 
HddsVolume the container resides.

 
/ssd1/

   |

   ` --db
           |
           `-- CID-4886ca17-9739-4bc7-8e41-d97bb1175a76
                       |
                       `--{*}DS-b559933f-9de3-4da4-a634-07d3a94f7438{*}
                                   |
                                   |-- *container.db*     *← rocksdb instance*
                                   `-- db.checkpoints

 

 

When no SSD, use the same disk as data by default
 * Create container with the same disk where the block files resides
 * No DbVolume created, e.g. hddsVolume.dbVolume = null
 * Configuration item not specified
 * Could be easily migrated to a newly added SSD, e.g.

             *mv /data1/hdds/CID-<clusterID>/DS-<StorageID>  
/ssd1/db/CID-<clusterID>/*

 
/data1

   |

   `-- hdds
         |
          `-- CID-4886ca17-9739-4bc7-8e41-d97bb1175a76
                 |
                 |-- current
                 |         |
                 |         `--containerDir0
                 |
                  `-- *DS-b559933f-9de3-4da4-a634-07d3a94f7438*

                           |
                           |-- *container.db*     *← rocksdb instance*
                           `-- db.checkpoints|

 


> Per-disk DB location management.
> --------------------------------
>
>                 Key: HDDS-6541
>                 URL: https://issues.apache.org/jira/browse/HDDS-6541
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Mark Gui
>            Assignee: Mark Gui
>            Priority: Major
>              Labels: pull-request-available
>
> We have one subdirectory for each data volume under a db volume, with the 
> StorageID(UUID) of the data volume as the name of the subdirectory.
> When extra SSDs are used
>  * Should create DbVolume to manage it for bad disk checking
>  * Should create special directory structure including clusterID to be 
> isolated with other stuff on the disk, e.g. */ssd1/db/CID-<clusterID>*
>  * Should have a configuration item: “{*}hdds.datanode.container.db.dir{*}”
>  * HddsVolume should be mapped to a dedicated subdir named after the 
> StorageID of it, e.g. *DS-b559933f-9de3-4da4-a634-07d3a94f7438/*
>  * Container metafile (e.g. 1.container under metadata) does not have to 
> record the *dbPath* since now it is bind to the HddsVolume and we already 
> know which HddsVolume the container resides.
>  
> /ssd1/
>    |
>    ` --db
>            |
>            `-- VERSION
>            `-- CID-4886ca17-9739-4bc7-8e41-d97bb1175a76
>                        |
>                        `--{*}DS-b559933f-9de3-4da4-a634-07d3a94f7438{*}
>                                    |
>                                    |-- *container.db*     *← rocksdb instance*
>                                    `-- db.checkpoints
>  
>  
> When no SSD, use the same disk as data by default
>  * Create container with the same disk where the block files resides
>  * No DbVolume created, e.g. hddsVolume.dbVolume = null
>  * Configuration item not specified
>  * Could be easily migrated to a newly added SSD, e.g.
>              *mv /data1/hdds/CID-<clusterID>/DS-<StorageID>  
> /ssd1/db/CID-<clusterID>/*
>  
> /data1
>    |
>    `-- hdds
>          |
>           `-- VERSION
>           `-- CID-4886ca17-9739-4bc7-8e41-d97bb1175a76
>                  |
>                  |-- current
>                  |         |
>                  |         `--containerDir0
>                  |
>                   `-- *DS-b559933f-9de3-4da4-a634-07d3a94f7438*
>                            |
>                            |-- *container.db*     *← rocksdb instance*
>                            `-- db.checkpoints|
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to