On 02/26/10 07:03, Jesse Reynolds wrote:
Hello

I have an amd64 server running OpenSolaris 2009-06. In December I created one 
container on this server named 'cpmail' with it's own zfs dataset and it's been 
running ever since. Until earlier this evening when the server did a kernel 
panic and rebooted. Now, I can't see any contents in the zfs dataset for this 
zone!

The server has two disks which are root mirrored with ZFS:

# zpool status
   pool: rpool
  state: ONLINE
  scrub: none requested
config:

         NAME          STATE     READ WRITE CKSUM
         rpool         ONLINE       0     0     0
           mirror      ONLINE       0     0     0
             c8t0d0s0  ONLINE       0     0     0
             c8t1d0s0  ONLINE       0     0     0

errors: No known data errors

Here are the datasets:

# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                     161G  67.6G  79.5K  /rpool
rpool/ROOT               3.66G  67.6G    19K  legacy
rpool/ROOT/opensolaris   3.66G  67.6G  3.51G  /
rpool/cpmail              139G  67.6G    22K  /zones/cpmail
rpool/cpmail/ROOT         139G  67.6G    19K  legacy
rpool/cpmail/ROOT/zbe     139G  67.6G   139G  legacy
rpool/dump               2.00G  67.6G  2.00G  -
rpool/export             7.64G  67.6G  7.49G  /export
rpool/export/home         150M  67.6G    21K  /export/home
rpool/export/home/jesse   150M  67.6G   150M  /export/home/jesse
rpool/repo               6.56G  67.6G  6.56G  /rpool/repo
rpool/swap               2.00G  69.4G   130M  -

/zones/cpmail is where it should be mounting the zone's dataset, I believe.

Here's what happens when I try and start the zone:

# zoneadm -z cpmail boot
could not verify zfs dataset mailtmp: dataset does not exist
zoneadm: zone cpmail failed to verify


So the zone is trying to find a dataset 'mailtmp' and failing because it 
doesn't exist. So, what happened to it?

Here's the zone config file, at /etc/zones/cpmail.xml (with IP address 
obfuscated)

# cat /etc/zones/cpmail.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE zone PUBLIC "-//Sun Microsystems Inc//DTD Zones//EN" 
"file:///usr/share/lib/xml/dtd/zonecfg.dtd.1">
<!--
     DO NOT EDIT THIS FILE.  Use zonecfg(1M) instead.
-->
<zone name="cpmail" zonepath="/zones/cpmail" autoboot="false" brand="ipkg">
   <network address="xxx.xxx.xxx.xxx" physical="bge1"/>
   <dataset name="mailtmp"/>
</zone>

I just don't understand where the dataset 'mailtmp' went to.  Perhaps it was an 
initial name I used for the dataset and I then renamed it to cpmail, but then I 
can't see any of the zones files in /zones/cpmail :

# find /zones/cpmail/
/zones/cpmail/
/zones/cpmail/dev
/zones/cpmail/root

Does ZFS store a log file of all operations applied to it? It feels like 
someone has gained access and run 'zfs destroy mailtmp' to me, but then again 
it could just be my own ineptitude.

With the version of opensolaris that you're running, the zone's root
dataset  won't be mounted until the zone boots.  You can see this in
the 'zfs list' output above where the mountpoint is legacy and you can
look at the zfs mounted property as well.  Since the zone is configured
with a dataset that doesn't exist, it can't boot so the zonepath dataset
isn't mounted. You can use the 'zpool history' command to see what
zfs operations were done.  I don't know why the mailtmp dataset no longer
exists.

Jerry
_______________________________________________
zones-discuss mailing list
zones-discuss@opensolaris.org

Reply via email to