다음 예에서는 부트 환경을 복제하는 방법과 영역 및 데이터 세트 구조에 따라 복제 프로세스가 어떻게 달라지는지 보여 줍니다. 첫번째 예제는 전역 및 비전역 영역을 포함하는 시스템에서 복제가 어떻게 작동하는지 보여줍니다. 두번째 예제는 복제에 관련된 데이터 세트 특성을 보여줍니다. 세번째 예에서는 시스템을 복제할 때 공유 데이터 세트가 어떻게 되는지를 보여 줍니다.
예 3-1 비전역 영역을 포함하는 전역 영역에서 부트 환경 복제이 예에서는 비전역 영역을 포함하는 전역 영역에서 부트 환경을 복제할 때 beadm create 명령이 영역에 미치는 영향을 보여 줍니다.
복제 중인 부트 환경에 비전역 영역의 연관된 영역 부트 환경이 있는 경우 연관된 부트 환경도 복제됩니다. 예를 들어, BE1에 비전역 영역의 연관된 영역 부트 환경 BE2가 있습니다. BE1을 복제하면 BE2도 복제됩니다.
이 예에서 전역 영역의 원래 부트 환경은 이름이 solaris이고 rpool/ROOT/solaris에 루트 데이터 세트를 포함합니다.
이름이 z1인 비전역 영역이 있고 해당 zonepath는 rpool/zones/z1 데이터 세트입니다. 전역 영역의 원래 solaris 부트 환경에는 z1 비전역 영역의 연관된 부트 환경이 있습니다. 이 연관된 영역 부트 환경은 이름이 solaris이고 rpool/zones/z1/rpool/ROOT/solaris에 루트 데이터 세트를 포함합니다.
# zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 11.5G 3.89G 4.46M /rpool rpool/ROOT 8.47G 3.89G 31K legacy rpool/ROOT/solaris 2.98M 3.89G 2.49G / rpool/ROOT/solaris/var 428K 3.89G 298M /var rpool/dump 1.03G 3.92G 1.00G - rpool/export 120K 3.89G 32K /export rpool/export/home 88.5K 3.89G 32K /export/home rpool/export/home/user1 56.5K 3.89G 56.5K /export/home/user1 rpool/swap 1.03G 3.92G 1.00G - rpool/zones 672M 3.89G 32K /zones rpool/zones/z1 672M 3.89G 32K /zones/z1 rpool/zones/z1/rpool 671M 3.89G 31K /rpool rpool/zones/z1/rpool/ROOT 671M 3.89G 31K legacy rpool/zones/z1/rpool/ROOT/solaris 671M 3.89G 591M /zones/z1/root rpool/zones/z1/rpool/ROOT/solaris/var 79.3M 3.89G 78.4M /zones/z1/root/var rpool/zones/z1/rpool/export 62K 3.89G 31K /export rpool/zones/z1/rpool/export/home 31K 3.89G 31K /export/home
이 예에서는 다음 명령을 루트로 실행하여 전역 영역의 부트 환경을 복제하고 새 부트 환경을 solaris-1로 지정합니다.
# beadm create test # zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 11.5G 3.89G 4.46M /rpool rpool/ROOT 8.47G 3.89G 31K legacy rpool/ROOT/solaris 2.98M 3.89G 2.49G / rpool/ROOT/solaris/var 428K 3.89G 298M /var rpool/ROOT/test 71K 3.89G 2.50G / rpool/ROOT/test/var 1K 3.89G 2.88G /var rpool/dump 1.03G 3.92G 1.00G - rpool/export 120K 3.89G 32K /export rpool/export/home 88.5K 3.89G 32K /export/home rpool/export/home/user1 56.5K 3.89G 56.5K /export/home/user1 rpool/swap 1.03G 3.92G 1.00G - rpool/zones 672M 3.89G 32K /zones rpool/zones/z1 672M 3.89G 32K /zones/z1 rpool/zones/z1/rpool 671M 3.89G 31K /rpool rpool/zones/z1/rpool/ROOT 671M 3.89G 31K legacy rpool/zones/z1/rpool/ROOT/solaris 671M 3.89G 591M /zones/z1/root rpool/zones/z1/rpool/ROOT/solaris/var 79.3M 3.89G 78.4M /zones/z1/root/var rpool/zones/z1/rpool/ROOT/solaris-1 2K 3.89G 591M / rpool/zones/z1/rpool/ROOT/solaris-1/var 1K 3.89G 78.4M /var rpool/zones/z1/rpool/export 62K 3.89G 31K /export rpool/zones/z1/rpool/export/home 31K 3.89G 31K /export/home
복제본은 이름이 test이고 rpool/ROOT/test에 루트 데이터 세트를 포함합니다.
전역 영역의 solaris 부트 환경에는 z1 비전역 영역의 연관된 영역 부트 환경이 있기 때문에 복제 과정 중 z1의 연관된 영역 부트 환경도 복제됩니다. z1 영역의 새 solaris-1 복제본은 rpool/zones/z1/rpool/ROOT/solaris-1에 루트 데이터 세트를 포함합니다.
예 3-2 데이터 세트가 포함된 새 부트 환경 복제이 예에서는 새로 만든 부트 환경에서 데이터 세트를 설정하는 방법을 보여 줍니다. 이 예에는 다중 영역이 관련되지 않습니다.
다음 명령을 루트로 입력합니다.
# beadm create BE2
이 예에서 원래 부트 환경은 BE1이고 rpool/ROOT/BE1에 루트 데이터 세트와 다른 데이터 세트 var을 포함합니다.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var
BE1을 복제한 후 새 복제본 BE2에는 BE1에서 복제된 모든 루트 데이터 세트와 다른 중첩된 데이터 세트가 포함됩니다. BE1이 루트 데이터 세트 아래에 /var 파일 시스템을 포함하므로 /var도 복제됩니다.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var rpool/ROOT/BE2 8.91M 24.4G 4.17G / rpool/ROOT/BE2/var 3.96M 24.4G 276M /var
반대로, 루트 데이터 세트 바깥에 공유 파일 시스템이 있는 경우 해당 공유 파일 시스템은 복제되지 않습니다. 다음 예제에 표시된 대로 원래 부트 환경과 복제본은 원래 공유 파일 시스템을 양쪽에서 "공유"합니다.
예 3-3 기존 공유 데이터 세트가 포함된 새 부트 환경 만들기이 예에서는 기존 공유 데이터 세트가 있을 때 새 부트 환경을 만드는 방법을 보여 줍니다. 이 예에서 원래 부트 환경은 BE1이고 공유 데이터 세트는 rpool/export 및 rpool/export/home입니다. 이 예에는 다중 영역이 관련되지 않습니다.
다음 명령을 루트로 입력하여 BE1을 복제하고 복제본 이름을 BE2로 지정합니다.
# beadm create BE2
공유 데이터 세트 tank 및 tank/export는 부트 환경이 복제될 때 복제되지 않습니다. 공유 데이터 세트는 rpool/ROOT/BeName 데이터 세트 외부에 있으며 복제된 부트 환경 BE2에 의해 원래 위치에서 참조됩니다.
원래 부트 환경 BE1 및 데이터 세트는 다음과 같습니다.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var tank 450K 457G 18K /tank tank/home 315K 457G 21K /tank/home
루트 데이터 세트는 rpool/ROOT/BE1에 있고 /var 데이터 세트가 루트 데이터 세트 아래에 있습니다. 루트 데이터 세트와 /var은 모두 복제됩니다.
복제된 부트 환경 BE2에는 새 루트 데이터 세트와 새 /var 데이터 세트가 있지만, 원래 공유 데이터 세트 tank 및 tank/home은 변경되지 않습니다.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var rpool/ROOT/BE2 8.91M 24.4G 4.17G / rpool/ROOT/BE2/var 3.96M 24.4G 276M /var tank 450K 457G 18K /tank tank/home 315K 457G 21K /tank/home