Previous Next JavaScript must be enabled to correctly display this content

## Increasing Storage Node Capacity

You can increase the capacity of a Storage Node by adding additional hard disks. Adding hard disks to a Storage Node permits the placement of each Replication Node on its own disk, ensuring that the Replication Nodes on the SN are not competing for I/O resources. Specify the location of the storage directory on the new disk using the `storagedir` parameter.

Note:

When you specify a storage directory, Oracle strongly recommends you also specify the storage directory size using the `-storagedirsize` parameter. See Managing Storage Directory Sizes for details. The system uses the configured directory sizes to enforce disk usage. Be sure to specify a storage directory size for every storage node in the store.

The following example demonstrates deploying a new store and adding two more disks to a Storage Node, increasing the capacity from 1 to 3:

1. Create, start and configure the new store.

   - Create the new store:

         java -Xmx64m -Xms64m \
         -jar KVHOME/lib/kvstore.jar makebootconfig \
         -root KVROOT \
         -host node20 -port 5000 \
         -harange 5010,5030 \
         -capacity 1 \
         -memory_mb 200 \
         -storagedir /disk1/ondb/data

   - Create and copy the security directory:

         java -Xmx64m -Xms64m \
         -jar kv/lib/kvstore.jar \
         securityconfig config create -root KVROOT -kspwd password
         Created files
         KVROOT/security/security.xml
         KVROOT/security/store.keys
         KVROOT/security/store.trust
         KVROOT/security/client.trust
         KVROOT/security/client.security
         KVROOT/security/store.passwd (Generated in CE version)
         KVROOT/security/store.wallet/cwallet.sso (Generated in EE version)

         Created

   - Start the new store:

         java -Xmx64m -Xms64m \
         -jar KVHOME/lib/kvstore.jar start \
         -root KVROOT &

   - Configure the new store:

         java -Xmx64m -Xms64m \
         -jar KVHOME/lib/kvstore.jar runadmin \
         -port 5000 -host node20 \
         -security KVROOT/security/client.security

         kv-> configure -name kvstore

     Output:

         Store configured: kvstore

2. Create a zone. Then create an administration process on a specific host:

       kv-> plan deploy-zone -name Houston -rf 1 -wait

   Output:

       Executed plan 1, waiting for completion...
       Plan 1 ended successfully

       kv-> plan deploy-sn -znname "Houston" -port 5000 -wait -host node20

   Output:

       Executed plan 2, waiting for completion...
       Plan 2 ended successfully

       kv-> plan deploy-admin -sn sn1 -port 5001 -wait

   Output:

       Executed plan 3, waiting for completion...
       Plan 3 ended successfully

3. Create the storage node pool. Then add the storage node to the pool:

       kv-> pool create -name AllStorageNodes

       kv-> pool join -name AllStorageNodes -sn sn1

4. Create a topology, preview it, and then deploy it:

       kv-> topology create -name 1x1 -pool AllStorageNodes -partitions 120

   Output:

       Created: 1x1

       kv-> topology preview -name 1x1

   Output:

       Topology transformation from current deployed topology to 1x1:
       Create 1 shard
       Create 1 RN
       Create 120 partitions

       shard rg1
         1 new RN : rg1-rn1
         120 new partitions

       kv-> plan deploy-topology -name 1x1 -wait

   Output:

       Executed plan 4, waiting for completion...
       Plan 4 ended successfully

5. Add two more disk drives to the Storage Node, mounted as `disk2` and `disk3`. Add the storage directories using the `plan change-storagedir` command. Be sure to add the Storage Directory size, such as `-storagedirsize “1 tb”`.

       kv-> plan change-storagedir -sn sn1 -storagedir /disk2/ondb/data \
       -storagedirsize "1 tb" -add -wait

   Output:

       Executed plan 5, waiting for completion...
       Plan 5 ended successfully

       kv-> plan change-storagedir -sn sn1 -storagedir /disk3/ondb/data \
       -storagedirsize "1 tb" -add -wait

   Output:

       Executed plan 6, waiting for completion...
       Plan 6 ended successfully

   Note:

   Because we specified storage directory sizes in the previous example, it is necessary to provide that information to your other nodes if you have not already done so. See Managing Storage Directory Sizes for more information.

6. Change the capacity equal to the total number of disks now available on the Storage Node (3).

       kv-> plan change-parameters -service sn1 -wait -params capacity=3

   Output:

       Executed plan 7, waiting for completion...
       Plan 7 ended successfully

   Note:

   You need to perform last two steps on all the Storage Nodes (in your cluster) to add the disk drives and increase the capacity of each Storage Node. In this case, it is a single node deployment, so the topology is now ready to be redistributed.

7. Redistribute your topology to expand the cluster in order to use the new capacity (3) of the Storage Node.

       kv-> topology clone -current -name 3x1

   Output:

       Created 3x1

       kv-> topology redistribute -name 3x1 -pool AllStorageNodes

   Output:

       Redistributed: 3x1

       kv-> topology preview -name 3x1

   Output:

       Topology transformation from current deployed topology to 3x1:
       Create 2 shards
       Create 2 RNs
       Migrate 80 partitions

       shard rg2
         1 new RN : rg2-rn1
         40 partition migrations
       shard rg3
         1 new RN : rg3-rn1
         40 partition migrations

       kv-> plan deploy-topology -name 3x1 -wait

   Output:

       Executed plan 8, waiting for completion...
       Plan 8 ended successfully