Split requires that the new disk can be a mirror in the old root pool. And a new zpool. Neither condition is met in my case.
Hans J. Albertsson From my Nexus 5 Den 20 sep. 2016 15:55 skrev "Aurélien Larcher" <aurelien.larc...@gmail.com >: > But I would personally use the root split method over the old one. > > On Tue, Sep 20, 2016 at 3:10 PM, Мартин Бохниг via openindiana-discuss > <openindiana-discuss@openindiana.org> wrote: > > Hello, > > > > I have no login credentials nor anything else other than ML access (and > never needed it nor asked for). > > But here is some info you may find useful: > > > > A) As always in all periods/epochs/ages, I took wget copies of all > important sites. > > So if anybody ever needs any mailing list copy, bugs database or > download central stuff from opensolaris.org, schillix, belenix, > opensparc.net, or oi or illumos etc, I can help you in most cases > > > > B) It took me 10 to 15 seconds from your question to google to finding > the links you are referring to (down atm) to google cache. > > The content a few lines lower ... > > > > C) While not most but definitely at lot of most lightweight stuff should > always make it into webarchive.org. > > > > > > Now your requested content: > > > > > > MfG, %martin > > > > > > How to migrate the root pool > > Skip to end of metadata > > * Page restrictions apply > > * Added by Gary Mills , last edited by Predrag Zečević on Dec 05, > 2013 ( view change ) Go to start of metadata > > * > > I recently wanted to migrate the root pool to a new device. This turned > out to be easy to do, using extisting facilities. The original root pool > was on an old 80-gig disk. This system also had a data pool on a newer 1 > TB disk. Here's what the `format' command showed for them: > > 0. c2t0d0 <Unknown-Unknown-0001 cyl 9726 alt 2 hd 255 sec 63> > > /pci@0,0/pci1043,8389@11/disk@0,0 > > 1. c2t2d0 <ATA-ST31000524AS-JC4B-931.51GB> > > /pci@0,0/pci1043,8389@11/disk@2,0I > > * wanted to migrate the root pool to a new SSD. The `format' command > was available to prepare the SSD. I could use the `zpool' command to > create the pool on that new device, and `beadm' and `installgrub' to > perform the migration. That part worked out nicely. I had to use a > variety of commands to complete the migration. > > * Add the SSD: Just shut down the computer, install the SSD hardware, > and boot the system. Here's the new output from `format': > > 0. c2t0d0 <Unknown-Unknown-0001 cyl 9726 alt 2 hd 255 sec 63> > > /pci@0,0/pci1043,8389@11/disk@0,0 > > 1. c2t1d0 <ATA-SanDiskSDSSDP06-0 cyl 9966 alt 2 hd 224 sec 56> > > /pci@0,0/pci1043,8389@11/disk@1,0 > > 2. c2t2d0 <ATA-ST31000524AS-JC4B-931.51GB> > > /pci@0,0/pci1043,8389@11/disk@2,0 > > * Prepare the SSD: Create the fdisk partition within `format': > > format> fdisk > > No fdisk table exists. The default partition for the disk is: > > a 100% "SOLARIS System" partition > > Type "y" to accept the default partition, otherwise type "n" to > edit the > > partition table. > > y > > > > * Create the slice: > > partition> 0 > > Part Tag Flag Cylinders Size Blocks > > 0 unassigned wm 0 0 (0/0/0) > 0 > > Enter partition id tag[unassigned]: root > > Enter partition permission flags[wm]: > > Enter new starting cyl[1]: 3 > > Enter partition size[0b, 0c, 3e, 0.00mb, 0.00gb]: $ > > partition> p > > Current partition table (unnamed): > > Total disk cylinders available: 9965 + 2 (reserved cylinders) > > Part Tag Flag Cylinders Size Blocks > > 0 root wm 3 - 9964 59.59GB (9962/0/0) > 124963328 > > 1 unassigned wm 0 0 (0/0/0) > 0 > > 2 backup wu 0 - 9964 59.61GB (9965/0/0) > 125000960 > > 3 unassigned wm 0 0 (0/0/0) > 0 > > 4 unassigned wm 0 0 (0/0/0) > 0 > > 5 unassigned wm 0 0 (0/0/0) > 0 > > 6 unassigned wm 0 0 (0/0/0) > 0 > > 7 unassigned wm 0 0 (0/0/0) > 0 > > 8 boot wu 0 - 0 6.12MB (1/0/0) > 12544 > > 9 unassigned wm 0 0 (0/0/0) > 0 > > partition> l > > Ready to label disk, continue? y > > * Get the root pool version: > > # zpool get all rpool > > NAME PROPERTY VALUE SOURCE > > rpool size 74G - > > ... > > rpool version 28 local > > > > * Try to create the new root pool, with a new pool name: > > # zpool create -o version=28 rpool1 c2t1d0s0 > > invalid vdev specification > > use '-f' to override the following errors: > > /dev/dsk/c2t1d0s0 overlaps with /dev/dsk/c2t1d0s2 > > > > * Try again with the force option: > > # zpool create -f -o version=28 rpool1 c2t1d0s0 > > # zpool list > > NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT > > dpool 928G 85.6G 842G 2.50M 9% 1.00x ONLINE - > > rpool 74G 7.05G 66.9G - 9% 1.00x ONLINE - > > rpool1 59.5G 108K 59.5G - 0% 1.00x ONLINE - > > > > * Create the BE, on the new device with a new name: > > # beadm create -p rpool1 oi_151a6x > > WARNING: menu.lst file /rpool1/boot/grub/menu.lst does not exist, > > generating a new menu.lst file > > Created successfully > > > > * Verify that it exists: > > # beadm list > > BE Active Mountpoint Space Policy Created > > oi_151a6 NR / 5.98G static 2012-09-13 16:33 > > oi_151a6x R - 4.15G static 2013-06-06 15:55 > > openindiana - - 13.5M static 2012-09-13 08:55 > > > > * Install the boot blocks: > > # installgrub -m /boot/grub/stage1 /boot/grub/stage2 > /dev/rdsk/c2t1d0s0 > > Updating master boot sector destroys existing boot managers (if any). > > continue (y/n)?y > > stage2 written to partition 0, 277 sectors starting at 50 (abs 12594) > > stage1 written to partition 0 sector 0 (abs 12544) > > stage1 written to master boot sector > > > > * Change the BIOS boot order by shutting the system down and entering > the BIOS setup. Then put the SSD first in the boot order and reboot. > > * At this point, I upgraded to oi_151a7. This confirmed that the new > root pool was functional. Here's the initial boot environment: > > # beadm list > > BE Active Mountpoint Space Policy Created > > oi_151a6 R - 6.01G static 2012-09-13 16:33 > > oi_151a6x NR / 4.33G static 2013-06-06 15:55 > > openindiana - - 13.5M static 2012-09-13 08:55 > > > > * Upgrade: > > # pkg image-update --be-name oi_151a7 > > WARNING: The boot environment being modified is not the active one. > Changes made in the active BE will not be reflected on the next boot. > > Packages to update: 895 > > Create boot environment: Yes > > Create backup boot environment: No > > ... > > A clone of oi_151a6x exists and has been updated and activated. > > On the next boot the Boot Environment oi_151a7 will be > > mounted on '/'. Reboot when ready to switch to this updated BE. > > > > * Check the BEs again: > > # beadm list > > BE Active Mountpoint Space Policy Created > > oi_151a6 R - 6.01G static 2012-09-13 16:33 > > oi_151a6x N / 101K static 2013-06-06 15:55 > > oi_151a7 R - 5.31G static 2013-06-06 16:56 > > openindiana - - 13.5M static 2012-09-13 08:55 > > > > * Shut down OS: > > # init 5 > > updating //platform/i86pc/boot_archive > > updating //platform/i86pc/amd64/boot_archive > > > > * Press the `Power' button to reboot. Confirm that the upgrade was > successful. Notice that there are still two active boot environments: > > $ beadm list > > BE Active Mountpoint Space Policy Created > > oi_151a6 R - 6.01G static 2012-09-13 16:33 > > oi_151a6x - - 16.8M static 2013-06-06 15:55 > > oi_151a7 NR / 5.33G static 2013-06-06 16:56 > > openindiana - - 13.5M static 2012-09-13 08:55 > > > > * Some of the old root pool is still in use. My home directory was on > rpool/export/home/mills . To simplify this migration, I decided to move it > to the data pool. First, create new filesystems on the data pool: > > # zfs create dpool/export > > # zfs create dpool/export/home > > > > * My home directory in the /etc/passwd file was automounted to > /home/mills from /export/home/mills . The first thing I did was to copy it > to /dpool/export/home/mills using `cpio'. Then I edited /etc/passwd to > change my home directory to /dpool/export/home/mills . After that change, > it was no longer automounted. After a reboot, I confirmed that the old > root pool was no longer needed for my home directory: > > # zfs unmount rpool/export/home/mills > > # zfs unmount rpool/export/home > > # zfs unmount rpool/export > > > > * Still, there are a few pieces left: > > # zfs list | egrep 'dump|swap' > > rpool/dump 895M 65.5G 895M - > > rpool/swap 952M 65.8G 637M - > > > > * To move the dump device, first get the properties of the old one: > > $ zfs get all rpool/dump | egrep 'SOURCE|local' > > NAME PROPERTY VALUE > SOURCE > > rpool/dump volsize 895M > local > > rpool/dump checksum off > local > > rpool/dump compression off > local > > rpool/dump refreservation none > local > > rpool/dump dedup off > local > > > > * Create another one on rpool1: > > # zfs create -o checksum=off -o compression=off -o > refreservation=none -o dedup=off -V 895M rpool1/dump > > > > * Try to move it: > > # dumpadm -d /dev/zvol/dsk/rpool1/dump > > dumpadm: dump device /dev/zvol/dsk/rpool1/dump is too small to hold > a system dump > > dump size 1812297728 bytes, device size 938475520 bytes > > # dumpadm > > Dump content: kernel pages > > Dump device: /dev/zvol/dsk/rpool/dump (dedicated) > > Savecore directory: /var/crash/ati > > Savecore enabled: no > > Save compressed: on > > > > * Expand the volume and try again: > > # dumpadm -d /dev/zvol/dsk/rpool1/dump > > Dump content: kernel pages > > Dump device: /dev/zvol/dsk/rpool1/dump (dedicated) > > Savecore directory: /var/crash/ati > > Savecore enabled: no > > Save compressed: on > > * Now, get the properties of the old swap device: > > $ zfs get all rpool/swap | egrep 'SOURCE|local' > > NAME PROPERTY VALUE > SOURCE > > rpool/swap volsize 895M > local > > rpool/swap refreservation 952M > local > > > > * Create a new one on rpool1: > > # zfs create -o refreservation=952M -V 895M rpool1/swap > > > > * Move the swap device by editing /etc/vfstab: > > o Move the swap device by editing /etc/vfstab: > > root@ati:/etc# cp -p vfstab vfstab- > > root@ati:/etc# ex vfstab > > root@ati:/etc# diff vfstab- vfstab > > 12c12 > > < /dev/zvol/dsk/rpool/swap - - swap > - no - > > --- > > > /dev/zvol/dsk/rpool1/swap - - swap > - no - > > > > * Reboot and confirm that rpool is no longer used: > > # dumpadm > > Dump content: kernel pages > > Dump device: /dev/zvol/dsk/rpool1/dump (dedicated) > > Savecore directory: /var/crash/ati > > Savecore enabled: no > > Save compressed: on > > # swap -l > > swapfile dev swaplo blocks free > > /dev/zvol/dsk/rpool1/swap 96,2 8 1832952 1832952 > > # beadm list > BE > > Active Mountpoint Space Policy Created > > oi_151a6 R - 6.01G static 2012-09-13 16:33 > > oi_151a6x - - 16.8M static 2013-06-06 15:55 > > oi_151a7 NR / 5.34G static 2013-06-06 16:56 > > openindiana - - 13.5M static 2012-09-13 08:55 > > # zpool list > > NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT > > dpool 928G 85.6G 842G 2.50M 9% 1.00x ONLINE - > > rpool 74G 6.19G 67.8G - 8% 1.00x ONLINE - > > rpool1 59.5G 7.17G 52.3G - 12% 1.00x ONLINE - > > > > * Export the pool and observe the result: > > # zpool export rpool > > # zpool list > > NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT > > dpool 928G 85.6G 842G 2.50M 9% 1.00x ONLINE - > > rpool1 59.5G 7.18G 52.3G - 12% 1.00x ONLINE - > > # zfs list > > NAME USED AVAIL REFER MOUNTPOINT > > dpool 85.6G 828G 24K /dpool > > dpool/export 83.8G 828G 22K /dpool/export > > dpool/export/home 83.8G 828G 83.8G /dpool/export/home > > dpool/opt 1.82G 828G 1.82G /dpool/opt > > dpool/opt/local 21K 828G 21K /dpool/opt/local > > rpool1 8.10G 50.5G 36.5K /rpool1 > > rpool1/ROOT 5.17G 50.5G 31K legacy > > rpool1/ROOT/oi_151a6x 16.8M 50.5G 4.33G / > > rpool1/ROOT/oi_151a7 5.16G 50.5G 4.27G / > > rpool1/dump 2.00G 50.5G 2.00G - > > rpool1/swap 952M 51.4G 16K - > > # getent passwd mills > > mills:x:107:10:Gary Mills:/dpool/export/home/mills:/bin/ksh > > # beadm list > > BE Active Mountpoint Space Policy Created > > oi_151a6x - - 16.8M static 2013-06-06 15:55 > > oi_151a7 NR / 5.34G static 2013-06-06 16:56 > > > > * I could have resumed automounting my home directory by changing the > mount point of dpool/export to /export, but I decided to leave it the way > it was. > > * Here's another upgrade, just to confirm that the new root pool was > correct: > > # pkg image-update --be-name oi_151a8 > > Packages to remove: 16 > > Packages to install: 6 > > Packages to update: 879 > > Create boot environment: Yes > > Create backup boot environment: No > > DOWNLOAD PKGS FILES XFER > (MB) > > Completed 901/901 22745/22745 > 566.2/566.2 > > PHASE ACTIONS > > Removal Phase 13844/13844 > > Install Phase 12382/12382 > > Update Phase 23637/23637 > > PHASE ITEMS > > Package State Update Phase 1780/1780 > > Package Cache Update Phase 895/895 > > Image State Update Phase 2/2 > > ... > > root@ati:~# beadm list > > BE Active Mountpoint Space Policy Created > > oi_151a6x - - 16.8M static 2013-06-06 15:55 > > oi_151a7 N / 11.4M static 2013-06-06 16:56 > > oi_151a8 R - 8.76G static 2013-08-11 16:12 > > # bootadm list-menu > > the location for the active GRUB menu is: /rpool1/boot/grub/menu.lst > > default 2 > > timeout 30 > > 0 oi_151a6x > > 1 oi_151a7 > > 2 oi_151a8 > > # init 5 > > > > * Press the power switch to reboot. The upgrade was successful, > completing the migration to a new device. > > > > Labels: > > None Edit Labels > > 3 Comments > > Hide/Show Comments > > * > > Dec 06, 2013 > > Predrag Zečević > > Hi, > > I have also wanted to try SSD (Samsung SSD 840, 120 GB). My current > rpool was on 160 GB HD 7200RPM. I have used slightly different approach, > which worked (I am now writing this from system booted from SSD). > > First, I have created same partition layout as existing rpool had > (slices 0, 2 and 8 - similar like in this example). BTW, I have attached > SSD disk via USB docking station... > > Then I have created new pool (I have found disk ID using format and > fdisk utilities in steps mentioned at the beginning of this page): > > > > Next phase is to take recursive snapshot of rpool and to send (verbose= > -v , recursive= -R ) it to and receive it (keep structure= -d , force= -F > ) to new rpool (I have named it RPOOL): > > > > BTW, my installation has user home directories on second HD, as well as > /opt directory. Boot disk ( rpool in such environment) has occupied 26 GB > of space and system took 28 minutes under normal activities to send/receive > pool... > > Now, we need to make new disk bootable. Check (compare and set bootfs > property of new root pool): > > > > After this, new pool has to be exported and grub installed: > > > > Now, you can shutdown system and shuffle disks. If you have put SSD disk > to same controller, nothing to do... But, if you have changed location of > it, then you have to fix BIOS boot order. > > I found easy enough to boot system FIRST from latest /hipster USB text > installation image (less than 1GG, easy to create - and my installation IS > /hipster one) in order to import copy of rpool under new name: > > > > After you have started reboot, skip step of booting from removable > device and your system should be started from SSD now. > > My impression is that all this is NOT enough to have all benefits of SSD > disk usage... > > Actually, I could not say that systems is significantly faster than boot > from normal HD, but it might be needed to do some optimizations. > > This is how I did moved rpool to SSD (pardon me on my mistakes in > English). > > Regards. > > P.S. Resources used (beside this page): > > * http://ptribble.blogspot.de/2012/09/recursive-zfs-send- > and-receive.html > > * http://waddles.org/content/replicating-zfs-root-disks > > > > * Permalink > > * > > Nov 15, 2014 > > Jon Strabala > > Predrag > > You might be able to do this via "zpool split" without using snapshots ( > I have not tried all these spteps ... yet ) > > Lets's assume > > * you have a rpool that is a bare drive or a mirrored set with the > drive or one of the members "c1t0d0s0" > > * you want to migrate the root pool to a new disk (same size or maybe > bigger) to a new disk "c1t2d0s0" > > * Note I'm not sure about any issues that might be caused via a 512 > byte vs 4K disk sector mismatch > > so lets assume the sector sizes match on all the disks (old and new) . > > Note "zpool split" is not documented in in the illumos man page Bug #2897 > > Step 1 - I imaging a "cleaner procedure' with out relying on snapshots > might be doing something like the following: > > # zpool attach rpool c1t0d0s0 c1t2d0s0 > > # zpool status rpool > > *** wait for resilver to complete **** > > Step 2 - Now split off the new device it's a perfect clone (by default > it takes the last one added - but we could specify c1t2d0s0 as the last > arg ) > > # zpool split rpool rpool2 > > # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t2d0s0 > > [Optional] You have your clone albiet with a different pool name, > however what if your new drive is larger - your not using the space - but > you can > > # zfs list > > # zpool set autoexpand=on rpool2 > > [Optional] not done yet look at how much space you can expand and use > and then use your new space > > # zpool get expandsize rpool2 > > # zpool online -e rpool2 > > # zfs list > > # zpool set autoexpand=off rpool2 > > [Optional] at this point the new cloned disk may be bigger than the > disks you cloned from if so no more using those old disks later as part of > a mirror with the new disk > > Step 3. Time to set up the cloned disk to boot (we need to change it's > pool name ) so shut down and power off > > # init 0 > > Step 4. Remove the old OS drive (or drives) which is either the original > stand alone disk or the entire original mirror set . > > Step 5. Boot from the latest /hipster USB text image - only way I know > of to change the pool name back to 'rpool' > > Step 6. Now import the device and change its name from rpool2 to rpool > > # zpool import -f rpool2 rpool > > # init 6 > > IMHO Step 1 & 2 make a perfect clone except for the pool name - it would > be cool if there was a zpool command to rename the split e.g. rpool2 to > rpool WITHOUT bringing it online as it would have a "name" conflict and > then you remove it offsite as a hot spare OS clone backup without rebooting > to a /hipster image to rename it. > > > > * Permalink > > * > > Sep 03, 2014 > > Stefan Müller-Wilken > > Procedure for SPARC (as reported by igork on #oi-dev): need install zfs > boot block by: installboot -F zfs /usr/platform/`uname > -i`/lib/fs/zfs/bootblk /dev/rdsk/c2t1d0s0 > > * Permalink > > > > Powered by a free Atlassian Confluence Community License granted to > OpenIndiana. Evaluate Confluence today . > > * Powered by Atlassian Confluence 4.1.7 , the Enterprise Wiki > > * Printed by Atlassian Confluence 4.1.7, the Enterprise Wiki. > > * · Report a bug > > * · Atlassian News > > > > > > > > > > > > > >>Вторник, 20 сентября 2016, 10:25 UTC от "Hans J. Albertsson" < > hans.j.alberts...@gmail.com>: > >> > >>Was going to refer to an old document on migrating the root pool, but I > >>get 503 Service unavailable from anywhere on wiki.openindiana.org. > >> > >>Is anyone looking after this site? Will it reappear?? > >>Is Gary Mills' short piece on migrating the root pool available > elsewhere?? > >> > > _______________________________________________ > > openindiana-discuss mailing list > > openindiana-discuss@openindiana.org > > https://openindiana.org/mailman/listinfo/openindiana-discuss > > > > -- > --- > Praise the Caffeine embeddings > > _______________________________________________ > openindiana-discuss mailing list > openindiana-discuss@openindiana.org > https://openindiana.org/mailman/listinfo/openindiana-discuss > _______________________________________________ openindiana-discuss mailing list openindiana-discuss@openindiana.org https://openindiana.org/mailman/listinfo/openindiana-discuss