FreeBSD ZFS
The Zettabyte File System
Data Fields

vdev Struct Reference

Virtual device descriptor. More...

#include <vdev_impl.h>

Collaboration diagram for vdev:
Collaboration graph
[legend]

Data Fields

kmutex_t vdev_dtl_lock
 vdev_dtl_{map,resilver}
kmutex_t vdev_stat_lock
 vdev_stat
kmutex_t vdev_probe_lock
 protects vdev_probe_zio
VDev common

Common to all vdev types.

uint64_t vdev_id
 child number in vdev parent
uint64_t vdev_guid
 unique ID for this vdev
uint64_t vdev_guid_sum
 self guid + all child guids
uint64_t vdev_orig_guid
 orig.
uint64_t vdev_asize
 allocatable device capacity
uint64_t vdev_min_asize
 min acceptable asize
uint64_t vdev_max_asize
 max acceptable asize
uint64_t vdev_ashift
 block alignment shift
uint64_t vdev_state
 see VDEV_STATE_* #defines
uint64_t vdev_prevstate
 used when reopening a vdev
vdev_ops_tvdev_ops
 vdev operations
spa_tvdev_spa
 spa for this vdev
void * vdev_tsd
 type-specific data
vnode_t * vdev_name_vp
 vnode for pathname
vnode_t * vdev_devid_vp
 vnode for devid
vdev_tvdev_top
 top-level vdev
vdev_tvdev_parent
 parent vdev
vdev_t ** vdev_child
 array of children
uint64_t vdev_children
 number of children
space_map_t vdev_dtl [DTL_TYPES]
 in-core dirty time logs
vdev_stat_t vdev_stat
 virtual device statistics
boolean_t vdev_expanding
 expand the vdev?
boolean_t vdev_reopening
 reopen in progress?
int vdev_open_error
 error on last open
kthread_t * vdev_open_thread
 thread opening children
uint64_t vdev_crtxg
 txg when top-level was added
VDev top-level state

Top-level vdev state.

uint64_t vdev_ms_array
 metaslab array object
uint64_t vdev_ms_shift
 metaslab size shift
uint64_t vdev_ms_count
 number of metaslabs
metaslab_group_tvdev_mg
 metaslab group
metaslab_t ** vdev_ms
 metaslab array
txg_list_t vdev_ms_list
 per-txg dirty metaslab lists
txg_list_t vdev_dtl_list
 per-txg dirty DTL lists
txg_node_t vdev_txg_node
 per-txg dirty vdev linkage
boolean_t vdev_remove_wanted
 async remove wanted?
boolean_t vdev_probe_wanted
 async probe wanted?
uint64_t vdev_removing
 device is being removed?
list_node_t vdev_config_dirty_node
 config dirty list
list_node_t vdev_state_dirty_node
 state dirty list
uint64_t vdev_deflate_ratio
 deflation ratio (x512)
uint64_t vdev_islog
 is an intent log device
uint64_t vdev_ishole
 is a hole in the namespace
VDev Leaf State

Leaf vdev state.

uint64_t vdev_psize
 physical device capacity
space_map_obj_t vdev_dtl_smo
 dirty time log space map obj
txg_node_t vdev_dtl_node
 per-txg dirty DTL linkage
uint64_t vdev_wholedisk
 true if this is a whole disk
uint64_t vdev_offline
 persistent offline state
uint64_t vdev_faulted
 persistent faulted state
uint64_t vdev_degraded
 persistent degraded state
uint64_t vdev_removed
 persistent removed state
uint64_t vdev_resilvering
 persistent resilvering state
uint64_t vdev_nparity
 number of parity devices for raidz
char * vdev_path
 vdev path (if any)
char * vdev_devid
 vdev devid (if any)
char * vdev_physpath
 vdev device path (if any)
char * vdev_fru
 physical FRU location
uint64_t vdev_not_present
 not present during import
uint64_t vdev_unspare
 unspare when resilvering done
hrtime_t vdev_last_try
 last reopen time
boolean_t vdev_nowritecache
 true if flushwritecache failed
boolean_t vdev_notrim
 true if trim failed
boolean_t vdev_checkremove
 temporary online test
boolean_t vdev_forcefault
 force online fault
boolean_t vdev_splitting
 split or repair in progress
boolean_t vdev_delayed_close
 delayed device close?
uint8_t vdev_tmpoffline
 device taken offline temporarily?
uint8_t vdev_detached
 device detached?
uint8_t vdev_cant_read
 vdev is failing all reads
uint8_t vdev_cant_write
 vdev is failing all writes
uint64_t vdev_isspare
 was a hot spare
uint64_t vdev_isl2cache
 was a l2cache device
vdev_queue_t vdev_queue
 I/O deadline schedule queue.
vdev_cache_t vdev_cache
 physical block cache
spa_aux_vdev_tvdev_aux
 for l2cache vdevs
zio_tvdev_probe_zio
 root of current probe
vdev_aux_t vdev_label_aux
 on-disk aux state
struct trim_mapvdev_trimmap

Detailed Description

Virtual device descriptor.

Definition at line 117 of file vdev_impl.h.


Field Documentation

block alignment shift

Forces all IO to this VDev to be aligned to multiples of (1 << vdev_ashift) bytes.

Definition at line 136 of file vdev_impl.h.

uint64_t vdev::vdev_asize

allocatable device capacity

Definition at line 127 of file vdev_impl.h.

for l2cache vdevs

Definition at line 216 of file vdev_impl.h.

physical block cache

Definition at line 215 of file vdev_impl.h.

vdev is failing all reads

Definition at line 210 of file vdev_impl.h.

vdev is failing all writes

Definition at line 211 of file vdev_impl.h.

temporary online test

Definition at line 204 of file vdev_impl.h.

array of children

Definition at line 146 of file vdev_impl.h.

number of children

Definition at line 147 of file vdev_impl.h.

config dirty list

Definition at line 173 of file vdev_impl.h.

uint64_t vdev::vdev_crtxg

txg when top-level was added

Definition at line 154 of file vdev_impl.h.

deflation ratio (x512)

Definition at line 175 of file vdev_impl.h.

persistent degraded state

Definition at line 191 of file vdev_impl.h.

delayed device close?

Definition at line 207 of file vdev_impl.h.

device detached?

Definition at line 209 of file vdev_impl.h.

vdev devid (if any)

Definition at line 196 of file vdev_impl.h.

vnode for devid

Definition at line 143 of file vdev_impl.h.

in-core dirty time logs

Definition at line 148 of file vdev_impl.h.

per-txg dirty DTL lists

Definition at line 168 of file vdev_impl.h.

vdev_dtl_{map,resilver}

Definition at line 229 of file vdev_impl.h.

per-txg dirty DTL linkage

Definition at line 187 of file vdev_impl.h.

dirty time log space map obj

Definition at line 186 of file vdev_impl.h.

expand the vdev?

Definition at line 150 of file vdev_impl.h.

persistent faulted state

Definition at line 190 of file vdev_impl.h.

force online fault

Definition at line 205 of file vdev_impl.h.

physical FRU location

Definition at line 198 of file vdev_impl.h.

uint64_t vdev::vdev_guid

unique ID for this vdev

Definition at line 124 of file vdev_impl.h.

self guid + all child guids

Definition at line 125 of file vdev_impl.h.

uint64_t vdev::vdev_id

child number in vdev parent

Definition at line 123 of file vdev_impl.h.

is a hole in the namespace

Definition at line 177 of file vdev_impl.h.

was a l2cache device

Definition at line 213 of file vdev_impl.h.

uint64_t vdev::vdev_islog

is an intent log device

Definition at line 176 of file vdev_impl.h.

was a hot spare

Definition at line 212 of file vdev_impl.h.

on-disk aux state

Definition at line 218 of file vdev_impl.h.

last reopen time

Definition at line 201 of file vdev_impl.h.

max acceptable asize

Definition at line 129 of file vdev_impl.h.

metaslab group

Definition at line 165 of file vdev_impl.h.

min acceptable asize

Definition at line 128 of file vdev_impl.h.

metaslab array

Definition at line 166 of file vdev_impl.h.

metaslab array object

Definition at line 162 of file vdev_impl.h.

number of metaslabs

Definition at line 164 of file vdev_impl.h.

per-txg dirty metaslab lists

Definition at line 167 of file vdev_impl.h.

metaslab size shift

Definition at line 163 of file vdev_impl.h.

vnode for pathname

Definition at line 142 of file vdev_impl.h.

not present during import

Definition at line 199 of file vdev_impl.h.

boolean_t vdev::vdev_notrim

true if trim failed

Definition at line 203 of file vdev_impl.h.

true if flushwritecache failed

Definition at line 202 of file vdev_impl.h.

number of parity devices for raidz

Definition at line 194 of file vdev_impl.h.

persistent offline state

Definition at line 189 of file vdev_impl.h.

error on last open

Definition at line 152 of file vdev_impl.h.

thread opening children

Definition at line 153 of file vdev_impl.h.

vdev operations

Definition at line 139 of file vdev_impl.h.

orig.

guid prior to remove

Definition at line 126 of file vdev_impl.h.

parent vdev

Definition at line 145 of file vdev_impl.h.

vdev path (if any)

Definition at line 195 of file vdev_impl.h.

vdev device path (if any)

Definition at line 197 of file vdev_impl.h.

used when reopening a vdev

Definition at line 138 of file vdev_impl.h.

protects vdev_probe_zio

Definition at line 231 of file vdev_impl.h.

async probe wanted?

Definition at line 171 of file vdev_impl.h.

root of current probe

Definition at line 217 of file vdev_impl.h.

uint64_t vdev::vdev_psize

physical device capacity

Definition at line 185 of file vdev_impl.h.

I/O deadline schedule queue.

Definition at line 214 of file vdev_impl.h.

async remove wanted?

Definition at line 170 of file vdev_impl.h.

persistent removed state

Definition at line 192 of file vdev_impl.h.

device is being removed?

Definition at line 172 of file vdev_impl.h.

reopen in progress?

Definition at line 151 of file vdev_impl.h.

persistent resilvering state

Definition at line 193 of file vdev_impl.h.

spa for this vdev

Definition at line 140 of file vdev_impl.h.

split or repair in progress

Definition at line 206 of file vdev_impl.h.

vdev_stat_t vdev::vdev_stat

virtual device statistics

Definition at line 149 of file vdev_impl.h.

vdev_stat

Definition at line 230 of file vdev_impl.h.

uint64_t vdev::vdev_state

see VDEV_STATE_* #defines

Definition at line 137 of file vdev_impl.h.

state dirty list

Definition at line 174 of file vdev_impl.h.

device taken offline temporarily?

Definition at line 208 of file vdev_impl.h.

top-level vdev

Definition at line 144 of file vdev_impl.h.

Definition at line 219 of file vdev_impl.h.

type-specific data

Definition at line 141 of file vdev_impl.h.

per-txg dirty vdev linkage

Definition at line 169 of file vdev_impl.h.

unspare when resilvering done

Definition at line 200 of file vdev_impl.h.

true if this is a whole disk

Definition at line 188 of file vdev_impl.h.


The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines