Jump to content

Share writing to 2 separate disk pools at once


Recommended Posts

I have two pools, the first is named Corsair1ssd and the second pool is named Corsair2ssd.
I have a share called Corsair.mx500.1tb which has the following settings:
Use cache pool (for new files/directories): Only
Select cache pool: Corsair2ssd

Despite the above settings the files in the share is written to both Corsair1ssd and Corsair2ssd pools?
Why is that??
With the setting above it shoould only write to Corsair2ssd pool....

 

Edit: Also... My appdata-folder is set to only write to Corsair1ssd pool, but is written to both discs anyway.. Really weird..

Edited by widdefmh
Link to comment
14 minutes ago, JorgeB said:

Probably both devices are still in the same pool, please post diagnostics to confirm.


Nope they are not in the same pool. What files from the diagnostic do you need?
They have never been in the same pool.
It is 2 Corsair MX 500 discs and the first disc is in Corsair1ssd pool and the other is in Corsair2ssd pool. Both pools are set to have 1 disc.

 

I can see the following in the corsair share config:
 

# Generated settings:
shareComment="..."
shareInclude=""
shareExclude=""
shareUseCache="only"
shareCachePool="corsair2ssd"
shareCOW="no"
shareAllocator="highwater"
shareSplitLevel=""
shareFloor="0"
shareExport="e"
shareFruit="no"
shareCaseSensitive="auto"
shareSecurity="private"
shareReadList=""
shareWriteList="..."
shareVolsizelimit=""
shareExportNFS="-"
shareExportNFSFsid="0"
shareSecurityNFS="public"
shareHostListNFS=""
# Share exists on corsair2ssd,corsair1ssd

 

Share exists on corsair2ssd,corsair1ssd. That is strange.

Edited by widdefmh
Link to comment

corsair1ssd pool:
 

diskFsType="btrfs"
diskComment=""
diskWarning=""
diskCritical=""
diskUUID="89157aa0-b41f-477c-902a-c6be5473c397"
diskShareEnabled="yes"
diskShareFloor="0"
diskExport="e"
diskFruit="no"
diskSecurity="public"
diskReadList=""
diskWriteList=""
diskVolsizelimit=""
diskCaseSensitive="auto"
diskExportNFS="-"
diskExportNFSFsid="0"
diskSecurityNFS="public"
diskHostListNFS=""
diskId="CT1000MX500SSD1_2016E29B8E7E"
diskIdSlot="CT1000MX500SSD1_2016E29B8E7E"
diskType="Cache"
diskSpindownDelay="-1"
diskSpinupGroup=""

 

corsair2sdd:

diskFsType="btrfs"
diskComment=""
diskWarning=""
diskCritical=""
diskUUID="89157aa0-b41f-477c-902a-c6be5473c397"
diskShareEnabled="yes"
diskShareFloor="0"
diskExport="e"
diskFruit="no"
diskSecurity="public"
diskReadList=""
diskWriteList=""
diskVolsizelimit=""
diskCaseSensitive="auto"
diskExportNFS="-"
diskExportNFSFsid="0"
diskSecurityNFS="public"
diskHostListNFS=""
diskId="CT1000MX500SSD1_1946E227AF74"
diskIdSlot="CT1000MX500SSD1_1946E227AF74"
diskType="Cache"
diskSpindownDelay="-1"
diskSpinupGroup=""


I see that they have the same diskUUID.. But differens diskId and diskIdSlot..

Link to comment
7 minutes ago, JorgeB said:

That's not what I need, post the output of 

btrfs fi usage -T /mnt/name_of_pool

for both pools, if that's enough fine, if not sorry but not going going to ask file by file as I need them.

 

btrfs fi usage -T /mnt/crucial1ssd/
Overall:
    Device size:                   1.82TiB
    Device allocated:              6.06GiB
    Device unallocated:            1.81TiB
    Device missing:                  0.00B
    Used:                          2.41GiB
    Free (estimated):            929.31GiB      (min: 929.31GiB)
    Free (statfs, df):           929.31GiB
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:                3.25MiB      (used: 0.00B)
    Multiple profiles:                  no

             Data    Metadata System              
Id Path      RAID1   RAID1    RAID1    Unallocated
-- --------- ------- -------- -------- -----------
 1 /dev/sdb1 2.00GiB  1.00GiB 32.00MiB   928.48GiB
 2 /dev/sdc1 2.00GiB  1.00GiB 32.00MiB   928.48GiB
-- --------- ------- -------- -------- -----------
   Total     2.00GiB  1.00GiB 32.00MiB     1.81TiB
   Used      1.17GiB 33.06MiB 16.00KiB

 

btrfs fi usage -T /mnt/crucial2ssd/
Overall:
    Device size:                   1.82TiB
    Device allocated:              6.06GiB
    Device unallocated:            1.81TiB
    Device missing:                  0.00B
    Used:                          2.41GiB
    Free (estimated):            929.31GiB      (min: 929.31GiB)
    Free (statfs, df):           929.31GiB
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:                3.25MiB      (used: 0.00B)
    Multiple profiles:                  no

             Data    Metadata System              
Id Path      RAID1   RAID1    RAID1    Unallocated
-- --------- ------- -------- -------- -----------
 1 /dev/sdb1 2.00GiB  1.00GiB 32.00MiB   928.48GiB
 2 /dev/sdc1 2.00GiB  1.00GiB 32.00MiB   928.48GiB
-- --------- ------- -------- -------- -----------
   Total     2.00GiB  1.00GiB 32.00MiB     1.81TiB
   Used      1.17GiB 33.06MiB 16.00KiB


I see that both discs are in both pools, but they ar not configured that way in the gui?

EDIT: The pools are named crucial, not corsair as I wrote above. Thought it was Corsair :)

Edited by widdefmh
Link to comment

Like suspected both devices are in the same pool, easiest way to fix is by doing the below, since I don't know which Unraid version you're using make sure you don't change the number of cache slots when removing the pool device, there's a bug in some releases.

 

-stop the array

-unassign both pool devices

-start array

-stop array

-assign both devices to the same pool, to the one where you want the existing data, there can't be a "all data will be delete" warning in front of any member

-start array

-stop array

-unassign the device you want to remove from that pool

-start array

-wait for the btrfs balance to finish, when it does stop the array

-you can now assign the removed device to the other pool

-start array, there will be an option to format that pool and once that's done you can use it.

Link to comment
8 minutes ago, JorgeB said:

Like suspected both devices are in the same pool, easiest way to fix is by doing the below, since I don't know which Unraid version you're using make sure you don't change the number of cache slots when removing the pool device, there's a bug in some releases.

 

-stop the array

-unassign both pool devices

-start array

-stop array

-assign both devices to the same pool, to the one where you want the existing data, there can't be a "all data will be delete" warning in front of any member

-start array

-stop array

-unassign the device you want to remove from that pool

-start array

-wait for the btrfs balance to finish, when it does stop the array

-you can now assign the removed device to the other pool

-start array, there will be an option to format that pool and once that's done you can use it.


Thanks a lot! (despite my unwillingness to share the complete diagnostic file ;) )
I am running version 6.9.2 of Unraid.

Just curious, how did they end up in the same pools? I have not defined them that way.. I have, from the very beginning put them in separate pools..

Edited by widdefmh
Link to comment

And the thing about not changing the numer of cache slots. Both cache slots are set to 1, so I really have to change it in order to put both in the same pool...

 

I did set up the pools long time ago and the server has been rebooted several times since then.
This is really weird because I can not recall that I have put them in the same pool.
Can Unraid be confused if two identical discs is used? I saw they had the same UUID..
In this case two identical discs is used and it is only with those 2 cache pools I have problems..
I have more pools and they work just fine with no confusion.. :)
 

Edited by widdefmh
Link to comment
2 minutes ago, JorgeB said:

 

 

Yeah, I answered on the comment you had that I should not change the number of cache slots. I can not add two discs to the pool when it is set to 1, as it is now.
It is set to 1, but still I have two discs in the pool.. This is not shown in the gui, both discs are in their own pools..
 

I did set up the pools long time ago and the server has been rebooted several times since then.
This is really weird because I can not recall that I have put them in the same pool.
Can Unraid be confused if two identical discs is used? I saw they had the same UUID..
In this case two identical discs is used and it is only with those 2 cache pools I have problems..
I have more pools and they work just fine with no confusion..

Link to comment
1 minute ago, widdefmh said:

you had that I should not change the number of cache slots.

When you remove a device, it's not a problem when you add one.

 

2 minutes ago, widdefmh said:

Can Unraid be confused if two identical discs is used?

Don't see how.

 

2 minutes ago, widdefmh said:

I saw they had the same UUID..

Because the UUID comes from the filesystem and it was the same.

Link to comment

Well, did this not go as I wanted. I could not add both devices to the same pool without increase the slots to 2.
Now I can not remove the disc I added to the pool. Can not restart the array when removing one of the discs.

 

I changed the share appdata to another disc and ran mover.. But nothing happens..
How can I move all appdata (docker containers) to another disc so I don't loose everything on the disc pool?

Will remove the cache pools and start over, but I have to move the data in the pool...

 

Edited by widdefmh
Link to comment

Mover only moves files from the designated pool to the array for cache-yes share, or from the array to the designated pool for cache-prefer shares. Mover ignores cache-only and cache-no shares, and it doesn't move files between array disks or between pools.

 

Also, nothing can move or delete open files, so you have to disable Docker in Settings. If you want more detailed advice based on your specific configuration post diagnostics.

Link to comment

Well, I removed the other 2 pools and created a completely new pool with a new name..
I ONLY added one of the crucial ssd discs to the new pool. The number of slots were set to 1.
When running
btrfs fi usage -T /mnt/crucialmx500ssd
I get the following result AGAIN:
 

btrfs fi usage -T /mnt/crucialmx500ssd
Overall:
    Device size:                   1.82TiB
    Device allocated:              6.06GiB
    Device unallocated:            1.81TiB
    Device missing:                  0.00B
    Used:                          2.38GiB
    Free (estimated):            929.32GiB      (min: 929.32GiB)
    Free (statfs, df):           929.32GiB
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:                3.25MiB      (used: 0.00B)
    Multiple profiles:                  no

             Data    Metadata System              
Id Path      RAID1   RAID1    RAID1    Unallocated
-- --------- ------- -------- -------- -----------
 1 /dev/sdb1 2.00GiB  1.00GiB 32.00MiB   928.48GiB
 2 /dev/sdc1 2.00GiB  1.00GiB 32.00MiB   928.48GiB
-- --------- ------- -------- -------- -----------
   Total     2.00GiB  1.00GiB 32.00MiB     1.81TiB
   Used      1.16GiB 31.78MiB 16.00KiB


This has to be a bug. Unraid adds both of my Crucial MX 500 discs to the pool even when the slot is only set to 1 and only 1 disc is selected.

 

Now one of the drives is an unassigned device and I could even mount it as a unassigned device. It is still a part of the pool as stated above.

Edited by widdefmh
Link to comment
2 hours ago, widdefmh said:

Well, I removed the other 2 pools and created a completely new pool with a new name..

Did you finish the balance operation to remove the drive?

 

4 hours ago, JorgeB said:

-stop the array

-unassign both pool devices

-start array

-stop array

-assign both devices to the same pool, to the one where you want the existing data, there can't be a "all data will be delete" warning in front of any member

-start array

-stop array

-unassign the device you want to remove from that pool

-start array

-wait for the btrfs balance to finish, when it does stop the array

Until the BTRFS filesystem has purged the drive from the pool, it will remain linked no matter where you assign it or don't, as long as it's physically connected and recognized.

 

If you don't mind losing the data on both devices you can run blkdiscard /dev/??? on both and they will no longer have the BTRFS pool data.

Link to comment
12 hours ago, widdefmh said:

I could not add both devices to the same pool without increase the slots to 2.

As mentioned adding slots is not a problem.

 

12 hours ago, widdefmh said:

Now I can not remove the disc I added to the pool. Can not restart the array when removing one of the discs.

Why not? Just need to check the "I want to do this" or similar box next to the array start button.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...