-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Processes that access zvols hang in D state #3667
Comments
How full is your pool? |
zfs list home
So, not completely full, but not much space left. The pool contains a single raidz1 vdev with 3 SSDs |
I have found something that may or may not cause this: It seems that there is a race condition during zvol creation/access in that if "zfs get all" is run at a specific time after "zfs create", it causes the freeze. How I found this out: Created two scripts - create-destroy.php and get.php and ran them both at the same time. In a few hours, the server was frozen - zvols could not be created or destroyed. After a reboot everything was OK for a few hours. When I introduced locking to make sure that only one "zfs" command was running at any one time, the problem went away. create-destroy.php
get.php
|
It may also have something to do with creating or destroying snapshots of zvols. It also seems that this issue is more common on 0.6.5.x versions as now it looks like servers with 0.6.4.x stopped freezing, but the ones with 0.6.5.x freeze about once a week. |
Hi, It seems that I have a similar problem here with ZFS snapshots using znapzend, tgtd and zvol, and with ZoL version 0.7.0. The server works fine during a month or two, and then, I have some D state processes (zvol and tgtd first, then other processes). I have 3 RAIDZ3 volumes using datasets and one another RAIDZ3 volume using zvol (and tgtd for iscsi). Maybe mixing those is not a good idea. Scanning the disks using smartmontools returned me no error. Maybe, I need to upgrade ZoL ... ? Server is currently running, so I cannot run those php scripts. Best regards, |
Hi, I have a virtualization server running Debian 8, the server uses KVM for virtualization and zvols for storage.
Everything was OK for two months and then for some reason all processes that access zvols got stuck in D state.
Here's the situation now:
zpool status - works
zfs create tank/fish - works
zfs destroy tank/fish - works
zfs create -V 1G tank/fish - D state
stack trace for this:
dd if=/dev/zvol/tank/otherfish of=/dev/null - D state
stack trace for this:
stack trace for a virtual machine stuck in D state:
And for another:
Versions:
OS: Debian 8.0
zfs: 0.6.4-1.1-1
spl: 0.6.4-1b
What is happening and is this fixable?
The text was updated successfully, but these errors were encountered: