|
|||
1. Solaris ZFS File System (Introduction) 3. ZFS and Traditional File System Differences Components of a ZFS Storage Pool Replication Features of a ZFS Storage Pool Creating and Destroying ZFS Storage Pools Managing Devices in ZFS Storage Pools Managing ZFS Storage Pool Properties 6. Working With ZFS Snapshots and Clones 7. Using ACLs to Protect ZFS Files 8. ZFS Delegated Administration |
Querying ZFS Storage Pool StatusThe zpool list command provides a number of ways to request information regarding pool status. The information available generally falls into three categories: basic usage information, I/O statistics, and health status. All three types of storage pool information are covered in this section. Displaying Basic ZFS Storage Pool InformationYou can use the zpool list command to display basic information about pools. Listing Information About All Storage PoolsWith no arguments, the command displays all the fields for all pools on the system. For example: # zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 80.0G 22.3G 47.7G 28% ONLINE - dozer 1.2T 384G 816G 32% ONLINE - This output displays the following information:
You can also gather statistics for a specific pool by specifying the pool name. For example: # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 80.0G 22.3G 47.7G 28% ONLINE - Listing Specific Storage Pool StatisticsSpecific statistics can be requested by using the -o option. This option allows for custom reports or a quick way to list pertinent information. For example, to list only the name and size of each pool, you use the following syntax: # zpool list -o name,size NAME SIZE tank 80.0G dozer 1.2T The column names correspond to the properties that are listed in Listing Information About All Storage Pools. Scripting ZFS Storage Pool OutputThe default output for the zpool list command is designed for readability, and is not easy to use as part of a shell script. To aid programmatic uses of the command, the -H option can be used to suppress the column headings and separate fields by tabs, rather than by spaces. For example, to request a simple list of all pool names on the system: # zpool list -Ho name tank dozer Here is another example: # zpool list -H -o name,size tank 80.0G dozer 1.2T Viewing ZFS Storage Pool I/O StatisticsTo request I/O statistics for a pool or specific virtual devices, use the zpool iostat command. Similar to the iostat command, this command can display a static snapshot of all I/O activity so far, as well as updated statistics for every specified interval. The following statistics are reported:
Listing Pool-Wide StatisticsWith no options, the zpool iostat command displays the accumulated statistics since boot for all pools on the system. For example: # zpool iostat capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- tank 100G 20.0G 1.2M 102K 1.2M 3.45K dozer 12.3G 67.7G 132K 15.2K 32.1K 1.20K Because these statistics are cumulative since boot, bandwidth might appear low if the pool is relatively idle. You can request a more accurate view of current bandwidth usage by specifying an interval. For example: # zpool iostat tank 2 capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- tank 100G 20.0G 1.2M 102K 1.2M 3.45K tank 100G 20.0G 134 0 1.34K 0 tank 100G 20.0G 94 342 1.06K 4.1M In this example, the command displays usage statistics only for the pool tank every two seconds until you type Ctrl-C. Alternately, you can specify an additional count parameter, which causes the command to terminate after the specified number of iterations. For example, zpool iostat 2 3 would print a summary every two seconds for three iterations, for a total of six seconds. If there is a single pool, then the statistics are displayed on consecutive lines. If more than one pool exists, then an additional dashed line delineates each iteration to provide visual separation. Listing Virtual Device StatisticsIn addition to pool-wide I/O statistics, the zpool iostat command can display statistics for specific virtual devices. This command can be used to identify abnormally slow devices, or simply to observe the distribution of I/O generated by ZFS. To request the complete virtual device layout as well as all I/O statistics, use the zpool iostat -v command. For example: # zpool iostat -v capacity operations bandwidth tank used avail read write read write ---------- ----- ----- ----- ----- ----- ----- mirror 20.4G 59.6G 0 22 0 6.00K c1t0d0 - - 1 295 11.2K 148K c1t1d0 - - 1 299 11.2K 148K ---------- ----- ----- ----- ----- ----- ----- total 24.5K 149M 0 22 0 6.00K Note two important things when viewing I/O statistics on a virtual device basis.
You can use the same set of options (interval and count) when examining virtual device statistics. Determining the Health Status of ZFS Storage PoolsZFS provides an integrated method of examining pool and device health. The health of a pool is determined from the state of all its devices. This state information is displayed by using the zpool status command. In addition, potential pool and device failures are reported by fmd and are displayed on the system console and the /var/adm/messages file. This section describes how to determine pool and device health. This chapter does not document how to repair or recover from unhealthy pools. For more information on troubleshooting and data recovery, see Chapter 10, ZFS Troubleshooting and Data Recovery. Each device can fall into one of the following states:
The health of a pool is determined from the health of all its top-level virtual devices. If all virtual devices are ONLINE, then the pool is also ONLINE. If any one of the virtual devices is DEGRADED or UNAVAILABLE, then the pool is also DEGRADED. If a top-level virtual device is FAULTED or OFFLINE, then the pool is also FAULTED. A pool in the faulted state is completely inaccessible. No data can be recovered until the necessary devices are attached or repaired. A pool in the degraded state continues to run, but you might not achieve the same level of data redundancy or data throughput than if the pool were online. Basic Storage Pool Health StatusThe simplest way to request a quick overview of pool health status is to use the zpool status command: # zpool status -x all pools are healthy Specific pools can be examined by specifying a pool name to the command. Any pool that is not in the ONLINE state should be investigated for potential problems, as described in the next section. Detailed Health StatusYou can request a more detailed health summary by using the -v option. For example: # zpool status -v tank pool: tank state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: none requested config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror DEGRADED 0 0 0 c1t0d0 FAULTED 0 0 0 cannot open c1t1d0 ONLINE 0 0 0 errors: No known data errors This output displays a complete description of why the pool is in its current state, including a readable description of the problem and a link to a knowledge article for more information. Each knowledge article provides up-to-date information on the best way to recover from your current problem. Using the detailed configuration information, you should be able to determine which device is damaged and how to repair the pool. In the above example, the faulted device should be replaced. After the device is replaced, use the zpool online command to bring the device back online. For example: # zpool online tank c1t0d0 Bringing device c1t0d0 online # zpool status -x all pools are healthy If a pool has an offlined device, the command output identifies the problem pool. For example: # zpool status -x pool: tank state: DEGRADED status: One or more devices has been taken offline by the adminstrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scrub: none requested config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror DEGRADED 0 0 0 c1t0d0 ONLINE 0 0 0 c1t1d0 OFFLINE 0 0 0 errors: No known data errors The READ and WRITE columns provides a count of I/O errors seen on the device, while the CKSUM column provides a count of uncorrectable checksum errors that occurred on the device. Both of these error counts likely indicate potential device failure, and some corrective action is needed. If non-zero errors are reported for a top-level virtual device, portions of your data might have become inaccessible. The errors count identifies any known data errors. In the example output above, the offlined device is not causing data errors. For more information about diagnosing and repairing faulted pools and data, see Chapter 10, ZFS Troubleshooting and Data Recovery. |
||
|