 |
Index for Section 8 |
|
 |
Alphabetical listing for M |
|
 |
Bottom of page |
|
migrate(8)
NAME
migrate - Move a file or file pages to another volume in an AdvFS file
domain
SYNOPSIS
/usr/sbin/migrate [-p pageoffset] [-n pagecount] [-s volumeindex] [-d
volumeindex] filename
OPTIONS
-d volumeindex
Specifies the volume index number of the volume to which the pages are
to be migrated. You can determine the volume index number of the
volumes in an AdvFS file domain by using the showfile -x command. If
you do not specify the -d option, the AdvFS determines the destination
of the file or the file pages. The AdvFS moves the file or the file
pages to any volume or volumes with available space.
-n pagecount
Specifies the number of pages to migrate, starting at the pageoffset
value. The default page count is to EOF. If you do not specify the -n
option, the migrate command migrates pages from the pageoffset value to
the end of the file.
-p pageoffset
Specifies the page offset of the first page to migrate. The first page
of the file is page 0. The default page offset is 0. If you do not
specify the -p option, the migrate command migrates pages starting at
page 0 of the file.
-s volumeindex
Specifies the volume index number of the volume from which the pages
are to be migrated. Use the showfile -x command to determine the
volume index number of the volumes in an AdvFS file domain.
If you specify the -s option and the volume that contains the file does
not contain any data extents of that file, the utility returns success
without taking any action.
You must use the -s option when you are migrating striped files. You
can move pages of a striped file or a stripe file segment, which is the
entire portion of a striped file that resides on the specified volume,
to another volume.
OPERANDS
filename
Specifies the name of the file or file pages to be migrated from the
volume. The file can be simple or striped.
DESCRIPTION
The migrate utility moves the specified simple (unstriped) file to another
volume in the same file domain. The utility also moves pages of a simple
file or pages of a striped file segment to another volume (or volumes, if
necessary) within the file domain.
Because there are no read/write restrictions when using this command, you
can migrate a file while users are reading it, writing to it, or both,
without disrupting file I/O. File migration is transparent to users.
When you run the migrate utility with only the -p and -n options, the
utility attempts to allocate destination pages contiguously on one
destination volume in the file domain. If there are not enough free,
contiguous blocks to accomplish the move, the utility then attempts to
allocate the pages to the next available blocks on the same volume. If
there are not enough free blocks on the same volume, the utility then
attempts to moves the file to the next available volume or volumes. The
utility returns an error diagnostic if it cannot accomplish the move.
You must use the -s, -n, and -p options in order to move pages of a striped
file from one volume to another. Only those pages assigned to the source
volume are moved to the destination volume: all pages in the file are not
moved.
You can use the migrate utility to move heavily accessed files or pages of
files to a different volume in the file domain. Use the -d option to
indicate a specific volume. Also, you can use the utility to defragment a
specific file, because the migrate utility defragments a file whenever
possible.
NOTES
The migrate utility does not evaluate your migration decisions. As a
result, you can move more than one striped file segment onto the same
volume, which can defeat the purpose of striping the file.
The number of stripes is determined by the number of extent maps for the
file although a map may point to more than one volume. If you want to
change the number of stripes for the file, you must re-create the file with
the desired number of stripes.
RESTRICTIONS
You can only perform one migrate operation on the same file at the same
time. When you migrate a striped file, you can only migrate from one
source volume at a time.
You must be the root user to use this utility.
EXIT STATUS
The utility returns a value of 0 (zero) on success, otherwise it returns a
nonzero value and an error diagnostic.
EXAMPLES
The following examples perform tasks using the migrate utility.
1. To migrate the simple file abc from its current volume to any other
volume in the file domain, enter:
# migrate abc
2. To migrate the simple file abc from volume 1 of a file domain to
volume 6 of a file domain, enter:
# migrate -s 1 -d 6 abc
3. To migrate pages 10 through 99 (that is, 90 pages starting at page 10)
of the simple file abc from its current volume to volume 2 of the file
domain, enter:
# migrate -p 10 -n 90 -d 2 abc
4. The following example migrates all the pages of a file that reside on
a specified volume. A file, stripe_1, is striped across Volumes 1, 2,
and 3 of a six-volume AdvFS file domain. To migrate the entire stripe
file segment of the stripe_1 file that is on volume 1 to volume 4 of
the domain, enter:
# migrate -s 1 -d 4 stripe_1
5. The following example moves some, but not all, file pages on one
volume of a striped file to another volume in the file domain. Use the
showfile command with the -x flag to determine the volume index, the
page count, and the page offset for the volume. Then specify the pages
you want to migrate.
In this example the file str_file is striped across three volumes (1,
2, and 3) of a four volume file domain. To move some of the
pages from volume 2 to volume 4, first identify the page offset and
the page count for the pages you want to move:
# showfile -x str_file
Id Vol PgSz Pages XtntType Segs SegSz I/O Perf File
6.8007 2 16 123 stripe 3 8 async 69% str_file
extentMap: 1
pageOff pageCnt volIndex volBlock blockCnt
0 8 3 67312 624
24 8
48 8
72 8
96 7
103 1 3 67952 64
120 3
extentCnt: 2
extentMap: 2
pageOff pageCnt volIndex volBlock blockCnt
8 8 4 67312 352
32 8
56 6
62 2 4 67696 64
80 2
82 6 4 67856 96
104 8 4 68080 128
extentCnt: 4
extentMap: 3
pageOff pageCnt volIndex volBlock blockCnt
16 8 1 76048 256
40 8
64 8 1 76320 128
88 8 1 76544 128
112 8 1 76720 128
extentCnt: 4
The showfile output shows that volume 4, as shown in extent map 2,
contains a total of 40 pages of the striped file starting at page
offset 8. You want to migrate the first 16 pages that reside on
volume 4 to volume 2. The first eight pages to be moved start at page
offset 8 and end at page offset 15. The next eight pages to be moved
start at page offset 32 and end at page offset 39. So the range of
pages you want to move (the value of the -n flag) is 32 pages; that
is, 8 to 39 inclusive. (The other pages in the range are on other
volumes because the file is striped.) The command will migrate only
the pages from the specified volume in the specified range.
# migrate -p 8 -n 32 -s 4 -d 2 str_file
Because you did not move all of the pages from volume 4 to volume 2,
the file is now stored on four volumes. Note, that this does not
change the stripe width of the file. There are still three extent
maps.
To confirm the migration, reissue the showfile command. Following is
part of the output showing the new extent map 2:
extentMap: 2
pageOff pageCnt volIndex volBlock blockCnt
8 8 2 51920 256
32 8
56 8 4 68592 256
80 8
104 8 4 68080 128
extentCnt: 4
SEE ALSO
Commands: showfdmn(8), showfile(8), stripe(8)
Files: advfs(4)
 |
Index for Section 8 |
|
 |
Alphabetical listing for M |
|
 |
Top of page |
|