Skip to main content

How to migrate a dataset from one pool to another in TrueNAS CORE ?

The migration steps.

1. Stopping the services that use the dataset. (recommended).
2. Replicating the dataset to the new pool.
3. Verify that all data is replicated.
4. Put in operation the new dataset.
5. Delete the old dataset when satisfied (or not).
 
The video tutorial can be found by clicking on the title or the picture below.

How to migrate a dataset from one pool to another in TrueNAS CORE

How to migrate a dataset from one pool to another in TrueNAS CORE


1. Stopping the services that use the dataset (recommended).

Go to the services tab and what I do if not certain of which services are used by the dataset I let only running the services from which I am cetain that they do not use the dataset. Also, control jails and Virtual Machines to be sure that they do not use the dataset. In the video I do not stop the services to show it is possible.

2. Replicate the dataset to the new pool.

a. go to Tasks --> Replication Tasks
Replication Tasks
b. add new replication task
c. select source location (example select on this system source /mnt/volume1/VM iso)
d. select destination location (example select on this system destination /mnt/RAID5/VM iso) it will create the dataset with the name that you give for dataset in the destination.
e. leave all other values to there default
f. click on next following screen will appear
add new replication task

g. for replication schedule select Run Once and uncheck the box from Make Destination Dataset Read-only. Click on Start Replication
Start Replication

h. click on close to close the pop-up message
pop-up message
i. check the state it should be RUNNING and you can check the progress in the Task Manager 
the progress in the Task Manager


3. Verify that all data is replicated.

a. when the task is finished go to Storage --> Pools compare the used space if it is the same you are lucky everything is copied to the new Dataset
Verify that all data is replicated

b. otherwise I use rsync to see if there is a difference between the two Datasets

-r copy all directories and sub directories and files
-v verbose show more information
-n for a dry run nothing will be changed or transferred

rsync -rvn source destination

example # rsync /mnt/volume1/VM\ iso /mnt/RAID5/VM\ iso

If you are happy with the output you can omit the -n and the files will be copied to the other dataset.

4. Put in operation the new dataset.

Change everything to point to the new Replicated Dataset in my case it was only one share to change.
a. Select Sharing --> Windows Shares (SMB) and look for the line with the dataset that has to be changed.
Windows Shares (SMB)

b. Select edit and change to the replicated dataset. Followed clicking on the button Save.
Select edit


change to the replicated dataset



5. Delete the old dataset when satisfied.

a. Go to Storage and pools again select Delete Dataset of the old dataset
.
select Delete Dataset of the old dataset

b. Type in VM iso for my example check the box for confirmation and click on DELETE DATASET
Type in VM iso for my example check the box for confirmation and click on DELETE DATASET

Be careful in doing this process try it out with a dummy dataset. Normally I never had a problem with migrating data this way but to be sure keep a backup at hand you never know.


Comments

Popular posts from this blog

Using docker on FreeNas (TrueNAS Core)

In this tutorial we will go over the installation of docker in FreeNas (if using jails is not enough). The first step will be to install a host for docker in a virtual machine. In the documentation for FreeNas they propose to use Ubuntu. My actual version of FreeNAS is FreeNAS-11.3-U4.1.(now TrueNAS CORE 12). The video tutorial can be found here https://hometinylab.blogspot.com/2021/01/follow-up-on-using-docker-on-truenas.html  . The major job will be to install a virtual machine on the FreeNAS platform. Select Virtual Machines in the FreeNAS menu. In the list you will see the existing docker instance running. Know click on the ADD button and we will create a second one for this tutorial. Step 1 Because we are using Ubuntu 20.04 has guest operating system we will select linux . Know we need to name the machine, for this tutorial it will be dockerblog . It is always handy to use the description field docker on Ubuntu for blog tutorial . All what follows we will keep has is.  Click Next

Using docker containers on XCP-ng with Xen Orchestra CE step by step

1. Create a VM In my tutorial I am cloning one existing VM. To install docker and to prepare the xcp-ng host watch the following video .  Or you could also continue to read it is up to you. 2. Inside the VM you have to install docker, openssh-server and ncat? For ubuntu: $ sudo apt install docker.io $ sudo apt install openssh-server $ sudo apt install ncat To use docker has non-root add the user to the docker group inside your VM like this. $ sudo usermod -aG docker $(whoami) Do not forget to logout and login are it may not work with your account To check if docker is running  type the following $ systemctl status docker 3. Then in your XCP-ng host you have to install xscontainer Like this:  $ yum install xscontainer  Followed by executing  $ xe-toolstack-restart to restart the toolstack and use the following command  $ xscontainer-prepare-vm -v vmuuid -u christophe 4. Test your VM with container tab $ sudo docker run hello-world 5. To install portainer execute the following command on