← Back
Tech Hut November 24, 2024 12m

WISH I did this from the start... Fixing my Proxmox ZFS Storage

Read full transcript 9 segments
  1. when I first set this up I set it as a when I first set this up I set it as a uh data directory as the initial storage uh data directory as the initial storage uh data directory as the initial storage configuration and with that you could configuration and with that you could configuration and with that you could see here as an example this right here see here as an example this right here see here as an example this right here is my vault which it handles the shares is my vault which it handles the shares is my vault which it handles the shares and all that and you can see my data and all that and you can see my data and all that and you can see my data directory is a raw file which is a directory is a raw file which is a directory is a raw file which is a pretty simple file format that just pretty simple file format that just pretty simple file format that just contains all the files and this is set contains all the files and this is set contains all the files and this is set up as a uh 12 tbte kind of directory up as a uh 12 tbte kind of directory up as a uh 12 tbte kind of directory scheme here now I want to switch this to scheme here now I want to switch this to scheme here now I want to switch this to kind of a standard uh ZFS pool which I kind of a standard uh ZFS pool which I kind of a standard uh ZFS pool which I did with flash right here so if I go did with flash right here so if I go did with flash right here so if I go over to Data Center I go to storage you over to Data Center I go to storage you over to Data Center I go to storage you could see I have my uh data which you could see I have my uh data which you could see I have my uh data which you can see is a directory flash is just can see is a directory flash is just can see is a directory flash is just straight ZFS this data is in tank Vault straight ZFS this data is in tank Vault straight ZFS this data is in tank Vault while the flash just is acts as a kind while the flash just is acts as a kind while the flash just is acts as a kind of subdirectory on the root system in of subdirectory on the root system in of subdirectory on the root system in ZFS now this data is still in a ZFS raid ZFS now this data is still in a ZFS raid ZFS now this data is still in a ZFS raid configuration but I don't really want configuration but I don't really want configuration but I don't really want wanted to create those raw files I want wanted to create those raw files I want wanted to create those raw files I want to be able to access them uh pretty to be able to access them uh pretty to be able to access them uh pretty easily from both the kind of proxmox easily from both the kind of proxmox easily from both the kind of proxmox root file system and any other uh root file system and any other uh root file system and any other uh virtual machines or privileged virtual machines or privileged virtual machines or privileged containers and doing it not the way I containers and doing it not the way I containers and doing it not the way I originally did it should make it a lot originally did it should make it a lot originally did it should make it a lot easier to kind of manage actual like ZFS easier to kind of manage actual like ZFS easier to kind of manage actual like ZFS things that are going on and I just things that are going on and I just things that are going on and I just don't feel as comfortable having one don't feel as comfortable having one don't feel as comfortable having one large like 12 tbte raw file spread large like 12 tbte raw file spread large like 12 tbte raw file spread between multiple hard drives probably between multiple hard drives probably between multiple hard drives probably fine but I see more advantages to fine but I see more advantages to fine but I see more advantages to switching it this way so what have I

  2. switching it this way so what have I switching it this way so what have I done so far well I moved my entire done so far well I moved my entire done so far well I moved my entire godamn data directory which is massive I godamn data directory which is massive I godamn data directory which is massive I did this through I just kind of threw up did this through I just kind of threw up did this through I just kind of threw up this little temp uh privileged container this little temp uh privileged container this little temp uh privileged container here and you could see I was checking here and you could see I was checking here and you could see I was checking out logs earlier if I show you some of out logs earlier if I show you some of out logs earlier if I show you some of the commands I ran uh I ran an rsync uh the commands I ran uh I ran an rsync uh the commands I ran uh I ran an rsync uh ignore existing progress from the data ignore existing progress from the data ignore existing progress from the data directory which I as you can see mounted directory which I as you can see mounted directory which I as you can see mounted to this um container here so that is the to this um container here so that is the to this um container here so that is the data directory data directory data directory and I migrated over to unrate now that and I migrated over to unrate now that and I migrated over to unrate now that this is a privileged container if I set this is a privileged container if I set this is a privileged container if I set up UNR kind of in the standard CFS uh up UNR kind of in the standard CFS uh up UNR kind of in the standard CFS uh SMB mount it is accessible on the root SMB mount it is accessible on the root SMB mount it is accessible on the root file system which you can also see I go file system which you can also see I go file system which you can also see I go to resources here mounted whenever you to resources here mounted whenever you to resources here mounted whenever you add shares through the unraid guey add shares through the unraid guey add shares through the unraid guey directly it's a mount PVE and then directly it's a mount PVE and then directly it's a mount PVE and then whatever you call it just Mount that as whatever you call it just Mount that as whatever you call it just Mount that as unraid so then I was able to migrate unraid so then I was able to migrate unraid so then I was able to migrate everything into a migration data folder everything into a migration data folder everything into a migration data folder here this took absolutely forever here this took absolutely forever here this took absolutely forever because as you can see here my uh 12 because as you can see here my uh 12 because as you can see here my uh 12 tbte data kind of directory is 60% full tbte data kind of directory is 60% full tbte data kind of directory is 60% full and I only have a gigabit Network took and I only have a gigabit Network took and I only have a gigabit Network took probably about 30 hours so now what I'm probably about 30 hours so now what I'm probably about 30 hours so now what I'm going to do real quick is just kind of going to do real quick is just kind of going to do real quick is just kind of get out of here and let's CD into Data get out of here and let's CD into Data get out of here and let's CD into Data uh LS you can see this is everything I uh LS you can see this is everything I uh LS you can see this is everything I moved over and if I CD into unraid into moved over and if I CD into unraid into moved over and if I CD into unraid into that migration folder data data oh LS that migration folder data data oh LS that migration folder data data oh LS there there we go we have the exact same there there we go we have the exact same there there we go we have the exact same thing going on here music temp downloads

  3. thing going on here music temp downloads thing going on here music temp downloads home movies so we're good my data is home movies so we're good my data is home movies so we're good my data is backed up so now I should be able to backed up so now I should be able to backed up so now I should be able to screw around which for this honestly I'm screw around which for this honestly I'm screw around which for this honestly I'm going to have to probably shut some going to have to probably shut some going to have to probably shut some things down going to check some of these things down going to check some of these things down going to check some of these other things so that's only using flash other things so that's only using flash other things so that's only using flash Plex here has that data Mount so I'm Plex here has that data Mount so I'm Plex here has that data Mount so I'm going to need to get rid of these from going to need to get rid of these from going to need to get rid of these from all the containers that are currently all the containers that are currently all the containers that are currently using it thankfully I have the flash using it thankfully I have the flash using it thankfully I have the flash stuff which is all my Docker stuff which is all my Docker stuff which is all my Docker configurations already stored in a way configurations already stored in a way configurations already stored in a way that I want want it to be so let's shut that I want want it to be so let's shut that I want want it to be so let's shut it down shut down everything using that it down shut down everything using that it down shut down everything using that data structure ah it looks like I data structure ah it looks like I data structure ah it looks like I accidentally set up uh the proxy to have accidentally set up uh the proxy to have accidentally set up uh the proxy to have the root dis as data instead of flash so the root dis as data instead of flash so the root dis as data instead of flash so that's my bad I'm going to have to go that's my bad I'm going to have to go that's my bad I'm going to have to go back up that real quick uh pihole I did back up that real quick uh pihole I did back up that real quick uh pihole I did correctly this I did correctly but I'm correctly this I did correctly but I'm correctly this I did correctly but I'm still going to have to shut her down so still going to have to shut her down so still going to have to shut her down so I shut down everything using data except I shut down everything using data except I shut down everything using data except for proxy here which I can actually just for proxy here which I can actually just for proxy here which I can actually just show you real quick how I'm going to uh show you real quick how I'm going to uh show you real quick how I'm going to uh back this up [Applause] [Applause] [Music] [Music] [Music] so I'm actually going to redo this so I'm actually going to redo this so I'm actually going to redo this container so I'm going to go ahead and container so I'm going to go ahead and container so I'm going to go ahead and remove this so if I go more remove this so if I go more remove this so if I go more remove remove remove 102 destroy unreferenced Diss and now I 102 destroy unreferenced Diss and now I 102 destroy unreferenced Diss and now I need to change the configuration of need to change the configuration of need to change the configuration of these three so let's go into proxmox these three so let's go into proxmox these three so let's go into proxmox here here here proxmox uh proxmox uh proxmox uh configurations so first things first configurations so first things first configurations so first things first Nano into 100 I'm going to get rid of Nano into 100 I'm going to get rid of Nano into 100 I'm going to get rid of this data Mount point right

  4. this data Mount point right this data Mount point right here like so and I could probably just here like so and I could probably just here like so and I could probably just change this to mount point0 and now change this to mount point0 and now change this to mount point0 and now let's repeat this for 101 which is serve R get rid of that this is now going to R get rid of that this is now going to be Mount be Mount be Mount point0 boom and now for Plex so Plex is point0 boom and now for Plex so Plex is point0 boom and now for Plex so Plex is the 200 configuration the 200 configuration the 200 configuration and you can see I have unraid mounted in and you can see I have unraid mounted in and you can see I have unraid mounted in there that's currently hosting the files there that's currently hosting the files there that's currently hosting the files because I still want to kind of keep because I still want to kind of keep because I still want to kind of keep Plex running during the data migration Plex running during the data migration Plex running during the data migration I'm going to have to do in a little bit I'm going to have to do in a little bit I'm going to have to do in a little bit so this is Mount point0 and let's output so this is Mount point0 and let's output so this is Mount point0 and let's output that there we go so now if I go into that there we go so now if I go into that there we go so now if I go into like Vault for example resources I no like Vault for example resources I no like Vault for example resources I no longer have that data Mount and I longer have that data Mount and I longer have that data Mount and I shouldn't have a data Mount Point shouldn't have a data Mount Point shouldn't have a data Mount Point referenced anywhere except for here this referenced anywhere except for here this referenced anywhere except for here this is temp I could also get rid of this cuz is temp I could also get rid of this cuz is temp I could also get rid of this cuz it is definitely just a temp container it is definitely just a temp container it is definitely just a temp container so let's stop it and then get rid of it so let's stop it and then get rid of it so let's stop it and then get rid of it again I was only using that to be my again I was only using that to be my again I was only using that to be my kind of uh migration data migration task kind of uh migration data migration task kind of uh migration data migration task so uh destroy unreferenced discs by so uh destroy unreferenced discs by so uh destroy unreferenced discs by owner now that might actually remove owner now that might actually remove owner now that might actually remove that entire thing since nothing else is that entire thing since nothing else is that entire thing since nothing else is referencing it and now if we go over referencing it and now if we go over referencing it and now if we go over here into Data we have VM diss so it here into Data we have VM diss so it here into Data we have VM diss so it shouldn't be oh there it is this is our shouldn't be oh there it is this is our shouldn't be oh there it is this is our big big raw data folder going to remove big big raw data folder going to remove big big raw data folder going to remove that from the guest Hardware pain for that from the guest Hardware pain for that from the guest Hardware pain for the record and as you can obviously tell

  5. the record and as you can obviously tell the record and as you can obviously tell I I I am a learner I'm learning everything am a learner I'm learning everything am a learner I'm learning everything about proxmox kind of as I go here let's about proxmox kind of as I go here let's about proxmox kind of as I go here let's shut it down kind of reload that shut it down kind of reload that shut it down kind of reload that configuration hopefully and while that configuration hopefully and while that configuration hopefully and while that shuts down let's go back over here is it shuts down let's go back over here is it shuts down let's go back over here is it going to let me remove it nope so let's going to let me remove it nope so let's going to let me remove it nope so let's go into our data center and go under go into our data center and go under go into our data center and go under storage and we have this right here this storage and we have this right here this storage and we have this right here this is data uh let's let's just see if we is data uh let's let's just see if we is data uh let's let's just see if we can remove it this way Boop ah right can remove it this way Boop ah right can remove it this way Boop ah right here backup let's get rid of this too I here backup let's get rid of this too I here backup let's get rid of this too I haven't even set up my backups yet and haven't even set up my backups yet and haven't even set up my backups yet and it's also in that tank directory that I it's also in that tank directory that I it's also in that tank directory that I created so let's remove this and there created so let's remove this and there created so let's remove this and there we go oh there it is ZFS we have tank we go oh there it is ZFS we have tank we go oh there it is ZFS we have tank right here so let us let us destroy this right here so let us let us destroy this right here so let us let us destroy this pool so more pool so more pool so more destroy uh enter the ID to confirm and destroy uh enter the ID to confirm and destroy uh enter the ID to confirm and clean up disc clean up storage remove clean up disc clean up storage remove clean up disc clean up storage remove that might take a minute all right there that might take a minute all right there that might take a minute all right there we go and just to kind of check where I we go and just to kind of check where I we go and just to kind of check where I was earlier if I jump into the was earlier if I jump into the was earlier if I jump into the shell CD into tank no such directory so shell CD into tank no such directory so shell CD into tank no such directory so now let's go back to ZFS and now let's go back to ZFS and now let's go back to ZFS and recreate it this I'm going to keep the recreate it this I'm going to keep the recreate it this I'm going to keep the same name as same name as same name as tank uh compression tank uh compression tank uh compression level I think raid Z is one level I think raid Z is one level I think raid Z is one dis and we will add it to storage and dis and we will add it to storage and dis and we will add it to storage and that's kind of the difference earlier I that's kind of the difference earlier I that's kind of the difference earlier I didn't add it directly to storage I uh didn't add it directly to storage I uh didn't add it directly to storage I uh unchecked that and then I made a unchecked that and then I made a unchecked that and then I made a separate directory but this time I am

  6. separate directory but this time I am separate directory but this time I am going to keep it let's check all these going to keep it let's check all these going to keep it let's check all these devices and uncheck the things that devices and uncheck the things that devices and uncheck the things that aren't the 4 terb hard drives just aren't the 4 terb hard drives just aren't the 4 terb hard drives just checking making sure what I went with checking making sure what I went with checking making sure what I went with here here here lz4 we're going to do compression of lz4 we're going to do compression of lz4 we're going to do compression of lz4 and perfect I secretly make guides lz4 and perfect I secretly make guides lz4 and perfect I secretly make guides kind of for myself so I can cross cross kind of for myself so I can cross cross kind of for myself so I can cross cross reference them later uh um let's let's reference them later uh um let's let's reference them later uh um let's let's do this so let's hit create since we do this so let's hit create since we do this so let's hit create since we added it to the storage it should add it added it to the storage it should add it added it to the storage it should add it just like it did with flash which is my just like it did with flash which is my just like it did with flash which is my preference done so now we have tank preference done so now we have tank preference done so now we have tank awesome we have tank right there nice awesome we have tank right there nice awesome we have tank right there nice empty all four drives in empty all four drives in empty all four drives in ZFS so now theoretically I should be ZFS so now theoretically I should be ZFS so now theoretically I should be able to just go to My Vault here and able to just go to My Vault here and able to just go to My Vault here and recreate the data directory so if I go recreate the data directory so if I go recreate the data directory so if I go add mount point this time we're going to add mount point this time we're going to add mount point this time we're going to use tank use tank use tank and this is going to be 12,000 giib so there we go that should 12,000 giib so there we go that should work perfectly so if I create that give work perfectly so if I create that give work perfectly so if I create that give it a minute so now our new Mount point1 it a minute so now our new Mount point1 it a minute so now our new Mount point1 is the sub volume which is nice so it's is the sub volume which is nice so it's is the sub volume which is nice so it's not a raw file it's an actual uh not a raw file it's an actual uh not a raw file it's an actual uh directory scheme on the root system not directory scheme on the root system not directory scheme on the root system not root system on that uh the sub volume of root system on that uh the sub volume of root system on that uh the sub volume of our new ZFS creation or pool you know our new ZFS creation or pool you know our new ZFS creation or pool you know what I'm trying to say and because it's what I'm trying to say and because it's what I'm trying to say and because it's following the kind of same directory following the kind of same directory following the kind of same directory scheme I shouldn't really have anything scheme I shouldn't really have anything scheme I shouldn't really have anything I need to do in cockpit but if I go over I need to do in cockpit but if I go over I need to do in cockpit but if I go over here let's log in as my user CD into our

  7. here let's log in as my user CD into our here let's log in as my user CD into our root LS you can see I have data and root LS you can see I have data and root LS you can see I have data and Docker if I CD into Data it should be Docker if I CD into Data it should be Docker if I CD into Data it should be empty now but let's kind of test empty now but let's kind of test empty now but let's kind of test permissions here permissions here permissions here test.txt IPA I have to do IPS now since I don't IPA I have to do IPS now since I don't have my uh my proxy running copy that have my uh my proxy running copy that have my uh my proxy running copy that 9090 boom visit this website visit we're 9090 boom visit this website visit we're 9090 boom visit this website visit we're gonna go ahead and log in and try to fix gonna go ahead and log in and try to fix gonna go ahead and log in and try to fix the permissions real fast it should be the permissions real fast it should be the permissions real fast it should be pretty easy I'm going to pseudo myself pretty easy I'm going to pseudo myself pretty easy I'm going to pseudo myself so I have super user privileges go over so I have super user privileges go over so I have super user privileges go over to the Navigator we can see my data to the Navigator we can see my data to the Navigator we can see my data directory here which as a non pseudo directory here which as a non pseudo directory here which as a non pseudo user I currently don't have the user I currently don't have the user I currently don't have the permissions so you can see right here permissions so you can see right here permissions so you can see right here root and root uh let's customiz this so root and root uh let's customiz this so root and root uh let's customiz this so the owner is going to be the owner is going to be the owner is going to be Brandon Brandon and then this is going Brandon Brandon and then this is going Brandon Brandon and then this is going to be data share so these are now the to be data share so these are now the to be data share so these are now the owners the group is going to be able to owners the group is going to be able to owners the group is going to be able to write to it let's save that and now I write to it let's save that and now I write to it let's save that and now I should be able to should be able to should be able to should be able to should be able to should be able to touch touch touch it h I love it when things just just it h I love it when things just just it h I love it when things just just work how they're supposed to if you've work how they're supposed to if you've work how they're supposed to if you've played around with this you'll notice played around with this you'll notice played around with this you'll notice sometimes sometimes sometimes times so then I kind of just repeat the times so then I kind of just repeat the times so then I kind of just repeat the steps from earlier I'm not going to bore steps from earlier I'm not going to bore steps from earlier I'm not going to bore you too much with it but I'll do it with you too much with it but I'll do it with you too much with it but I'll do it with at least the serar that I have there so at least the serar that I have there so at least the serar that I have there so if I uh not CD actually it's going to be

  8. if I uh not CD actually it's going to be if I uh not CD actually it's going to be a CD if I go back to these where where a CD if I go back to these where where a CD if I go back to these where where is it where is it there we go if I CD is it where is it there we go if I CD is it where is it there we go if I CD back into my lxc configurations and then back into my lxc configurations and then back into my lxc configurations and then I'm going to cap this uh 100 com here I'm going to cap this uh 100 com here I'm going to cap this uh 100 com here the mount point1 the new tank sub volume the mount point1 the new tank sub volume the mount point1 the new tank sub volume instead of the raw file I'm going to instead of the raw file I'm going to instead of the raw file I'm going to give this a copy and then I'm going to give this a copy and then I'm going to give this a copy and then I'm going to Nano into 101 which is our Nano into 101 which is our Nano into 101 which is our serar and let's drop this in here under serar and let's drop this in here under serar and let's drop this in here under mount mount mount point0 boop boop there we go save this point0 boop boop there we go save this point0 boop boop there we go save this and then I would repeat this with a Plex and then I would repeat this with a Plex and then I would repeat this with a Plex and any other thing or container that I and any other thing or container that I and any other thing or container that I was using that with so just to confirm was using that with so just to confirm was using that with so just to confirm permission are still good because I kind permission are still good because I kind permission are still good because I kind of tried to set this up so I have the of tried to set this up so I have the of tried to set this up so I have the same permissions for that same brand and same permissions for that same brand and same permissions for that same brand and user throughout all these different user throughout all these different user throughout all these different containers so let's see if that holds containers so let's see if that holds containers so let's see if that holds true or if I have to edit it in every true or if I have to edit it in every true or if I have to edit it in every single one so CD into root and we will single one so CD into root and we will single one so CD into root and we will have data and Docker just like Vault and have data and Docker just like Vault and have data and Docker just like Vault and now if I CD into Data I should be able now if I CD into Data I should be able now if I CD into Data I should be able to LS and C test oh no it's going to to LS and C test oh no it's going to to LS and C test oh no it's going to start downloading things um at least it start downloading things um at least it start downloading things um at least it it created the full so now if I try to it created the full so now if I try to it created the full so now if I try to uh touch another test.txt uh touch another test.txt uh touch another test.txt nice so there we go now I'm going to nice so there we go now I'm going to nice so there we go now I'm going to begin the slow and painful process of

  9. begin the slow and painful process of begin the slow and painful process of migrating everything back over I'm going migrating everything back over I'm going migrating everything back over I'm going to shut this down because I don't want to shut this down because I don't want to shut this down because I don't want it to start downloading media um yeah so it to start downloading media um yeah so it to start downloading media um yeah so I'll come back when I got all that I'll come back when I got all that I'll come back when I got all that squared away and I actually do research squared away and I actually do research squared away and I actually do research and learn how to do The Next and learn how to do The Next and learn how to do The Next Step bye

Summary

The main theme is migrating from a raw file directory to a ZFS pool for better data management. Key subjects include ZFS, raw files, and unRaid mounts. The takeaway is that using a ZFS pool instead of large raw files offers more advantages for accessibility and management.

View original episode ↗