# Dedicated disk functionality

**URL:** <https://forum.storj.io/t/dedicated-disk-functionality/29499>\
**Category:** FAQ\
**Tags:** dedicated-disk, hardware\
**Created:** [March 12, 2025, 2:12pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499 "2025-03-12T14:12:44Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ItsHass](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/itshass/32/1122_2.png) [@ItsHass](https://forum.storj.io/u/ItsHass)\
**Post date:** [March 12, 2025, 2:12pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/1 "2025-03-12T14:12:44Z")

</div>

Hi all,

I’m wondering if anyone can provide information around dedicated disk / setup,

what counts as a dedicated disk / what doesn’t

changes needed to the docker run?

can be implemented on already running nodes not having dedicated disk enabled ?

can dedicated disk be reversed?

Pros/Cons …

Thanks in advance !

---

<div class="post-metadata">

**Author:** ![zip](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/zip/32/7813_2.png) [@zip](https://forum.storj.io/u/zip)\
**Post date:** [March 12, 2025, 2:37pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/2 "2025-03-12T14:37:26Z")

</div>

Dedicated disk means the node isn’t tracking the used space/trash in databases but instead is checking how much space is free on the drive configured as the destination for the data directory. You can configure a free space threshold - how much space to leave free on that drive. Once this threshold is met, the node stops receiving customer uploads.  
As things get deleted, it will start accepting the uploads again, and until the threshold it met again.

The pros are no need for used-space-filewalkers, no need to restart the node after the partition/LVM is extended, no problems with free space being reported incorrectly by the node and the node stopping receiving uploads, even if there is still free space on the drive.

The cons are just the broken dashboard probably and no stats, such as how much trash the node currently stores.

It can be enabled/disabled at will on any node.

Can’t help with Docker, but on binary installs it is just the configuration file edit.

---

<div class="post-metadata">

**Author:** ![ItsHass](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/itshass/32/1122_2.png) [@ItsHass](https://forum.storj.io/u/ItsHass)\
**Post date:** [March 12, 2025, 2:49pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/3 "2025-03-12T14:49:56Z")

</div>

nice - what in the config do you amend ? - i can translate that to docker

how would you know how much you are getting paid on per drive ?

does payout calcuation still work on the dashboard?

cheers

---

<div class="post-metadata">

**Author:** ![zip](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/zip/32/7813_2.png) [@zip](https://forum.storj.io/u/zip)\
**Post date:** [March 12, 2025, 3:12pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/4 "2025-03-12T15:12:04Z")

</div>

These lines:

```auto
# use whole disk
storage2.monitor.dedicated-disk: true

# how much size to reserve as always free
storage2.monitor.reserved-bytes: 25 GB

```

Payout calculation still works.  
It is still one drive per node as the node is determining the drive it is using from the data directory path. And using that just to determine the free space on it, the rest is the same.

---

<div class="post-metadata">

**Author:** ![ItsHass](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/itshass/32/1122_2.png) [@ItsHass](https://forum.storj.io/u/ItsHass)\
**Post date:** [March 12, 2025, 3:18pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/5 "2025-03-12T15:18:57Z")

</div>

Perfect information- thank you.

I should have used this along time ago in this case 🤣

@zip - do you happen to know if it creates a performance increase ?

---

<div class="post-metadata">

**Author:** ![zip](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/zip/32/7813_2.png) [@zip](https://forum.storj.io/u/zip)\
**Post date:** [March 12, 2025, 5:34pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/6 "2025-03-12T17:34:33Z")

</div>

I can imagine it would - there is no need to run used-space-filewalker, no need to update databases on read, delete etc.  
But have no benchmarks to prove it.

---

<div class="post-metadata">

**Author:** ![alpharabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alpharabbit/32/1129_2.png) [@alpharabbit](https://forum.storj.io/u/alpharabbit)\
**Post date:** [March 12, 2025, 7:27pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/7 "2025-03-12T19:27:22Z")

</div>

I guess with hashstore there is no benefit from using dedicated disk anymore.

---

<div class="post-metadata">

**Author:** ![ItsHass](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/itshass/32/1122_2.png) [@ItsHass](https://forum.storj.io/u/ItsHass)\
**Post date:** [March 12, 2025, 8:27pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/8 "2025-03-12T20:27:03Z")

</div>

Ooo interesting to know ! I turned it on 1 of my nodes but makes me anxious not knowing what’s going on 🤣🤣🤣

---

<div class="post-metadata">

**Author:** ![arrogantrabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/arrogantrabbit/32/11200_2.png) [@arrogantrabbit](https://forum.storj.io/u/arrogantrabbit)\
**Post date:** [March 12, 2025, 8:42pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/9 "2025-03-12T20:42:31Z")

</div>

It would depend on the configuration.

Database accesses are by default a lot of small reads and a lot of sync writes. Cumulative IO exceeds that of actual useful work done by storagenode.

In naive configuration that will make ginormous difference between overwhelming or not overwhelming disk.

But in a correct configuration, where sync is off and small reads are cached — the amount of IO hitting disks is so miniscule that even 10x increase of overal traffic would not make any difference in what hitting the disks.

So no.

---

<div class="post-metadata">

**Author:** ![ItsHass](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/itshass/32/1122_2.png) [@ItsHass](https://forum.storj.io/u/ItsHass)\
**Post date:** [March 12, 2025, 8:54pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/10 "2025-03-12T20:54:22Z")

</div>

I have DBs , hashstore etc on SSD and single disk literally just for storage

---

<div class="post-metadata">

**Author:** ![ntil](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/ntil/32/1140_2.png) [@ntil](https://forum.storj.io/u/ntil)\
**Post date:** [March 13, 2025, 8:30pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/11 "2025-03-13T20:30:11Z")

</div>

any way to enable it on docker?  
pack of nodes on my FC SAN on dedicated volumes.

---

<div class="post-metadata">

**Author:** ![ntil](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/ntil/32/1140_2.png) [@ntil](https://forum.storj.io/u/ntil)\
**Post date:** [March 13, 2025, 9:14pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/12 "2025-03-13T21:14:59Z")

</div>

> [@zip](#):
>
> `storage2.monitor.dedicated-disk: true`

okay, will answer ty myself/ these parameters can be passed (appended) with command line on docker container creation .

```auto
--storage2.monitor.dedicated-disk=true \
--storage2.monitor.reserved-bytes=25GB

```

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [March 14, 2025, 6:47am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/13 "2025-03-14T06:47:25Z")

</div>

You may use both features in the same time 🙂

---

<div class="post-metadata">

**Author:** ![ItsHass](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/itshass/32/1122_2.png) [@ItsHass](https://forum.storj.io/u/ItsHass)\
**Post date:** [March 14, 2025, 7:49am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/14 "2025-03-14T07:49:22Z")

</div>

how is payout calculated without storage knowledge? - reliant , on the satellite information?

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [March 14, 2025, 7:51am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/15 "2025-03-14T07:51:36Z")

</div>

I think so. However, it is not a payout, it is an estimation anyway.  
The real payout is calculated on the satellites at the beginning of the next month accordingly provided orders by your node for the past period.

---

<div class="post-metadata">

**Author:** ![foegra](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/foegra/32/1134_2.png) [@foegra](https://forum.storj.io/u/foegra)\
**Post date:** [April 1, 2025, 8:31pm UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/16 "2025-04-01T20:31:17Z")

</div>

would be great to have dashboard reporting correctly used space as, i would assume - there are people running Storj node on dedicated hard drives, and reducing space monitoring overhead - would be beneficial. Otherwise - every time node gets updated, filescan might last for more than a day in my case, and i have only 3.3 TB node at the moment.

P.S. Would it also work with ZFS on TreuNas?

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [April 2, 2025, 7:57am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/17 "2025-04-02T07:57:25Z")

</div>

It will not be implemented at least by Storj, the related issue has been closed, see

> <https://github.com/storj/storj/issues/7364>
>
> \*\*Description\*\*
> Node with enabled disk dedicated feature doesn't show the used s…pace neither on single node dashboards (web and CLI) nor multinode for both - hashstore and piecestore.
> 
> 
> 
> \*\*Screenshots\*\*
> \## Dedicated disk piecestore node:
> 
> Single node GUI dashboard:
> 
> !\[Image\](https://github.com/user-attachments/assets/aaf1495a-c049-49f9-bf60-26b3598aa4e7)
> 
> Multinode:
> 
> !\[Image\](https://github.com/user-attachments/assets/c46f69d3-bd05-4d32-ab82-31de8ec9b91b)
> 
> CLI dashboard:
> \`\`\`
> $ docker compose exec storagenode1 storagenode dashboard --address=:30002
> 
> Storage Node Dashboard ( Node Version: v0.0.0 )
> 
> ======================
> 
> ID 12L6jNwotMCZmXLGSrQKpCnYCdmpiSQusfPkwyKYJKdqCxVVoYW
> Status ONLINE
> Uptime 3m52s
> 
> Available Used Egress Ingress
> Bandwidth N/A 128.28 MB 0 B 128.28 MB (since Feb 1)
> Disk 12.55 GB 0 B
> Internal :30002
> External storagenode1:30001
> \`\`\`
> disk usage
> \`\`\`
> $ docker compose exec storagenode1 du --si -d 1 /var/lib/storj/.local/share/storj/storagenode/storage/
> 8.2k /var/lib/storj/.local/share/storj/storagenode/storage/piece\_expirations
> 33M /var/lib/storj/.local/share/storj/storagenode/storage/trash
> 4.1k /var/lib/storj/.local/share/storj/storagenode/storage/temp
> 17k /var/lib/storj/.local/share/storj/storagenode/storage/hashstore
> 65M /var/lib/storj/.local/share/storj/storagenode/storage/blobs
> 98M /var/lib/storj/.local/share/storj/storagenode/storage/
> \`\`\`
> disk free:
> \`\`\`
> $ df --si /dev/sda1
> Filesystem Size Used Avail Use% Mounted on
> /dev/sda1 41G 28G 13G 69% /
> \`\`\`
> 
> \## Dedicated disk hashstore node
> 
> Single node GUI dashboard:
> 
> !\[Image\](https://github.com/user-attachments/assets/fba70817-ff88-45b2-bb20-42a7ed5a0374)
> 
> Multinode:
> 
> !\[Image\](https://github.com/user-attachments/assets/2b130bb7-4a71-4438-bf51-dfc31fafc008)
> 
> CLI dashboard:
> \`\`\`
> $ docker compose exec storagenode10 storagenode dashboard --address=:30092
> 
> Storage Node Dashboard ( Node Version: v0.0.0 )
> 
> ======================
> 
> ID 12LqASUH4LSfVYnfFmjQ6DnrJVYkodfhAMFMhn4ryRbERaFeHvL
> Status ONLINE
> Uptime 15m45s
> 
> Available Used Egress Ingress
> Bandwidth N/A 124.71 MB 0 B 124.71 MB (since Feb 1)
> Disk 12.54 GB 0 B
> Internal :30092
> External storagenode10:30091
> \`\`\`
> disk usage
> \`\`\`
> $ docker compose exec storagenode10 du --si -d 1 /var/lib/storj/.local/share/storj/storagenode/storage/
> 8.2k /var/lib/storj/.local/share/storj/storagenode/storage/piece\_expirations
> 13k /var/lib/storj/.local/share/storj/storagenode/storage/trash
> 4.1k /var/lib/storj/.local/share/storj/storagenode/storage/temp
> 97M /var/lib/storj/.local/share/storj/storagenode/storage/hashstore
> 41k /var/lib/storj/.local/share/storj/storagenode/storage/blobs
> 99M /var/lib/storj/.local/share/storj/storagenode/storage/
> \`\`\`
> disk free is the same
> \`\`\`
> $ df --si /dev/sda1
> Filesystem Size Used Avail Use% Mounted on
> /dev/sda1 41G 28G 13G 70% /
> \`\`\`
> 
> \*\*Steps to reproduce the issue:\*\*
> 
> 
> 
> 1. run storj-up with satellite-api/core, db, storagenodes, satellite-gc and satellite-bf
> 2. enable hashstore for one node using https://forum.storj.io/t/tech-preview-hashstore-backend-for-storage-nodes/28724
> \`\`\`
> sed -i 's/false/true/g' storagenode9/storj/storagenode/storage/hashstore/meta/12whfK1EDvHJtajBiAUeajQLYcWqxcQmdYQU5zX5cCf6bAxfgu4.migrate
> echo -n 'true' \> storagenode10/storj/storagenode/storage/hashstore/meta/12whfK1EDvHJtajBiAUeajQLYcWqxcQmdYQU5zX5cCf6bAxfgu4.migrate\_chore
> \`\`\`
> 3. enable disk dedicated feature for that hashstore node
> \`\`\`
> storj-up env set storagenode10 STORJ\_STORAGE2\_MONITOR\_DEDICATED\_DISK="true"
> \`\`\`
> 4. enable disk dedicated feature for piecestore node
> \`\`\`
> storj-up env set storagenode1 STORJ\_STORAGE2\_MONITOR\_DEDICATED\_DISK="true"
> \`\`\`
> 5. \`docker compose up -d\`
> 6. configure \`uplink\` to work with storj-up
> 7. Upload the file with TTL and without TTL
> 8. Delete the file without TTL
> 9. Make sure that it's moved to the trash on nodes
> 10. Check both dashboards for hashstore+dedicated and piecestore+dedicated
> 11. Compare results with \`du --si\`
> 
> \*\*Describe the results you expected:\*\*
> Used space and trash on dashboards should match (or being pretty close to) the actual usage on the disk.
> GUI dashboards should show the free space on the disk (CLI and Multinode dashboards shows it)
> 
> \*\*Describe the results you received:\*\*
> Used space and trash both zero, single node GUI dashboards shows the disk size as a free space, Multinode dashboards shows the free space on the disk, but the used space is still zero.
> 
> \*\*Possible Fix\*\*
> 
> disable the dedicated disk feature.
> 
> \*\*Your environment\*\*
> 
> \- Operating system and version:
> \`\`\`
> $ lsb\_release -a
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description: Ubuntu 24.04.1 LTS
> Release: 24.04
> Codename: noble
> \`\`\`
> \- Additional environment details (Raspberry PI, Docker, VMWare, etc.):
> \`\`\`
> $ storj-up version
> panic: runtime error: slice bounds out of range \[:-1\]
> \`\`\`
> but it's built from \`main\`
> \`\`\`
> $ docker compose exec storagenode1 storagenode version
> Development build
> Build timestamp: 01 Jan 70 00:00 UTC
> Git commit: 35385635fdbb5f31bf2bc44cb9e12032d240bd82
> Modified (dirty): true
> \`\`\`
> built from \`main\`

It should work the same way on ZFS and any client, including TrueNAS.

---

<div class="post-metadata">

**Author:** ![foegra](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/foegra/32/1134_2.png) [@foegra](https://forum.storj.io/u/foegra)\
**Post date:** [April 2, 2025, 8:18am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/18 "2025-04-02T08:18:04Z")

</div>

since i’ve enabled the feature - noticed that database file were no longer updated.  
Question then - are satelites keeping track of every single file piece, which node have which one?

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [April 2, 2025, 8:41am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/19 "2025-04-02T08:41:46Z")

</div>

They are not. Your node just reports a free space on your node using an analogue of `df --si`.

Pieces of course are audited anyway, but not by the satellite. There is a dedicated service, which audits segments (and, as a result - nodes, since each piece of the segment should be on a dedicated node).

---

<div class="post-metadata">

**Author:** ![mrkeyboardcommando](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/mrkeyboardcommando/32/71_2.png) [@mrkeyboardcommando](https://forum.storj.io/u/mrkeyboardcommando)\
**Post date:** [December 22, 2025, 8:35am UTC](https://forum.storj.io/t/dedicated-disk-functionality/29499/20 "2025-12-22T08:35:39Z")

</div>

so how does this work with hashstore. as i keep seeing free space after converting to hashstore on the dashboard. more than the disks have free space.

[Next page](https://forum.storj.io/t/dedicated-disk-functionality/29499.md?page=2)
