Solaris 11 EA (b173) ZFS pool versions

 

Solaris 11 EA (Sep 2011 build 173) updated zpool version to 33:

$ zpool upgrade -v
This system is currently running ZFS pool version 33.

The following versions are supported:

VER DESCRIPTION
--- --------------------------------------------------------
1 Initial ZFS version
2 Ditto blocks (replicated metadata)
3 Hot spares and double parity RAID-Z
4 zpool history
5 Compression using the gzip algorithm
6 bootfs pool property
7 Separate intent log devices
8 Delegated administration
9 refquota and refreservation properties
10 Cache devices
11 Improved scrub performance
12 Snapshot properties
13 snapused property
14 passthrough-x aclinherit
15 user/group space accounting
16 stmf property support
17 Triple-parity RAID-Z
18 Snapshot user holds
19 Log device removal
20 Compression using zle (zero-length encoding)
21 Deduplication
22 Received properties (Solaris Nevada b130 Dec 2009)
23 Slim ZIL
24 System attributes
25 Improved scrub stats
26 Improved snapshot deletion performance
27 Improved snapshot creation performance
28 Multiple vdev replacements (ZFS for Linux)
29 RAID-Z/mirror hybrid allocator
30 Encryption
31 Improved 'zfs list' performance (Solaris 11 Express b151a Nov 2010)
32 One MB blocksize
33 Improved share support (Solaris 11 EA b173 Sep 2011)

Crash recovery after updating Win7 x64

Not sure if it’s a problem of VirtualBox, but when trying to install Win7x64 SP1 Windows stuck with the following message:

Fatal error C0000034 applying update operation 282 of 117809 (_00000…)

This method helped!

YEP I GOT IT WORKING!! I DONT KNOW IF MY METHOD IS THE BEST BUT IT WORKS!

This method works without Safe Mode, without backups, without System Restore, without DISM, and without a Windows 7 DVD repair disc.

INSTRUCTIONS:

01. Reboot your computer while it’s starting up.

02. When your computer starts up again, choose the option “Launch Startup Repair”
–> PIC: http://notebooks.com/wp-content/uploads/2011/01/Recov-1.jpg

03. When the Startup repair starts, click cancel.

04. After you click cancel it will show a box. Click “Don’t Send”
–> PIC: http://i52.tinypic.com/xgjriw.png

05. Click the link “View advanced options for recovery and support”

06. In the new window click Command Prompt at the bottom.
–> PIC: http://i51.tinypic.com/50imu8.png

07. In Command Prompt type this and press enter: %windir%\system32\notepad.exe

08. Notepad will open. In notepad go to File–>Open.

09. Change the type of files notepad views from .txt to All Files (see pic)
–> PIC: http://i51.tinypic.com/35nd74z.png

10. Now in Notepad, go to C:\Windows\winsxs\ (or whichever drive Windows is installed on)

11. In that folder, find pending.xml and make a copy of it

12. Now open the original pending.xml (it will load really slow because the file is huge)

13. Press CNTRL+F and search for the following exactly: 0000000000000000.cdf-ms

14. Delete the following text (yours will be a little different):


–> PIC: http://i54.tinypic.com/adzpzp.png

Your PC might not have all 3 sections of code (, , ). Just make sure you delete section “Checkpoint” and whatever other sections have “000000000000000.cdf-ms”. They will be right next to eachother.

15. Save the file, close notepad, close command prompt, restart your computer.

Solaris and external USB disks

Short tutorial on how to connect, format, mount, detach and reconnect external USB disks.

The used disk is WD20EARS connected to a USB port via Sharkoon Quickport Pro cradle.

Basically, you need only two commands:

  • rmformat – to determine the device name/path
  • zpool – to do the rest (create ZFS, mount, attach and detach)

Continue reading “Solaris and external USB disks”

Solaris and Sil3515 eSATA PCI express card

The bottom line – Sweex PU202 (eSATA PCI express card) based on Sil3515 chipset is not supported by nv_125.

Both cfgadm and prtdiag see that there is something in the slot:

xeon# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
pcie1 pci-pci/hp connected configured ok
. . .

xeon# prtdiag
ID Status Type Description
— ——— —————- —————————-
2 in use PCI Express PCIE2

“format -e” does not see the disk connected to that card.

QNAP NAS, eSATA , Solaris and backing up

Given:

  • QNAP TS-439 Pro NAS with 4 x WD20EADS in RAID-5
  • eSATA/USB Sharkoon QuickPort Pro SATA cradle
  • WD20EARS
  • 1.7TB data on RAID-5

Guess, how long will it take to back up 1.7TB of mostly big files to a directly connected eSATA disk using standard GUI commands?
Continue reading “QNAP NAS, eSATA , Solaris and backing up”

QNAP NAS, Solaris and NFS

I thought that nothing could be easier on Solaris than to mount a directory from a QNAP NAS (running Linux). Ha! Nope… Here’s some gotchas.

QNAP firmware v2.x does not support NFSv3 or NFSv4, so you have to explicitly use “-o vers=2”. As a result, you cannot use files bigger than 2GB (no problems with SMB).

QNAP firmware v3.2.x supports NFSv3 (use “-o vers=3”) but does not support NFSv4. Big files are back, but to get the AUTH_SYS authentication back too, add “sec=sys” to the options string (considering that users on the NAS box have the same UID’s as on Solaris).

xeon# mount -F nfs nas:/photo /mnt
nfs mount: nas:/photo: No such file or directoryxeon# mount -F nfs -o vers=3,sec=sys nas:/photo /mnt
xeon#

Or use the automounter:

xeon# more /etc/auto_master
. . .
/nas auto_nas -nobrowsexeon# more /etc/auto_nas
* -vers=3,sec=sys nas:/&

xeon# svcadm restart autofs
xeon#

xeon# cd /nas/video
xeon#

The directories must be exported as “No Limit” access rights (UID’s and standard file access modes will be used).

How to migrate a zone with shared to exclusive IP-stack

“Old” Solaris approach: a zone with exclusive IP-stack requires a separate physical network interface.

“New” Solaris 11 (project Crossbow, beginning b105) approach: you have one physical interface and you do with it whatever you want. You can create a whole network within your single box and a single network card.

Here’s an example on how to migrate your existing zones with shared stack to “independent” zones.

Old configuration: one global zone (system name xeon), one non-global zone (dmz), one physical interface (e1000g0), two VLAN’s (1 and 10):

xeon# ifconfig -a


e1000g1000:  #VLAN 1 (global zone)
flags=201000843 mtu 9000 index 3
inet 10.0.1.100 netmask ffffff00 broadcast 10.0.1.255
ether 0:18:f3:ef:2a:d0

e1000g1000:1: #VLAN 1 (zone dmz)
flags=201000843 mtu 9000 index 3
inet 10.0.1.101 netmask ffffff00 broadcast 10.0.1.255
ether 0:18:f3:ef:2a:d0

e1000g10000:  #VLAN 10 (zone dmz)
flags=201000842 mtu 9000 index 5
inet 10.0.0.100 netmask 0
ether 0:18:f3:ef:2a:d0

xeon# cd /etc/zones
xeon# more dmz.xml
. . .

. . .

“Defrouters” are defined in the global zone. So, if the global zone has a defaultrouter set to 10.0.1.1, you will have this route in zone “dmz”. You can’t get rid of it and force the traffic to 10.0.0.1. Instead you will have two default routes in both zones.

Now, let’s have a look at the virtual interfaces (a part of the new concept).
Currently we do not have any:

xeon# dladm show-vnic
xeon#

Let’s create two virtual interfaces, each of them will belong to a separate VLAN. You can choose a name for a virtual interface and call it whatever (almost 😉 ) you want:

xeon# dladm create-vnic -l e1000g0 -v 10 dmz0
xeon# dladm create-vnic -l e1000g0 -v 1 dmz1


xeon# dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE VID
dmz1 e1000g0 1000 2:8:20:fb:6a:82 random 1
dmz0 e1000g0 1000 2:8:20:52:8e:c5 random 10

Now we have two virtual interfaces:

  • dmz1 – VLAN 1
  • dmz0 – VLAN 10

with randomly assigned MAC addresses. You can assign an arbitrary MAC address to a virtual interface or use a factory one. (see man dladm).

Reconfigure the zone:

xeon# zonecfg -z dmz
zonecfg:dmz> info
. . .
net:
address: 10.0.0.100
physical: e1000g10000
defrouter: 10.0.0.1
net:
address: 10.0.1.101
physical: e1000g1000
defrouter: 10.0.1.1
. . .
zonecfg:dmz> set ip-type=exclusive
zonecfg:dmz> remove net address=10.0.0.100
zonecfg:dmz> remove net address=10.0.1.10
zonecfg:dmz> add net
zonecfg:dmz:net> set physical=dmz0
zonecfg:dmz:net> end
zonecfg:dmz> add net
zonecfg:dmz:net> set physical=dmz1
zonecfg:dmz:net> end
zonecfg:dmz> info
. . .
ip-type: exclusive
. . .
net:
address not specified
physical: dmz0
defrouter not specified
net:
address not specified
physical: dmz1
defrouter not specified
zonecfg:dmz> commit
zonecfg:dmz> exit

Now, (re)boot your zone and configure the network interfaces and default routes as if they were on a standalone system.

xeon# netstat -rn | fgrep defa
default 10.0.1.1 UG 1 12408
xeon# zlogin -C dmz
. . .
dmz# ifconfig -a
dmz0: flags=201000843 mtu 9000 index 2
inet 10.0.0.100 netmask ffffff00 broadcast 10.0.0.255
ether 2:8:20:52:8e:c5


dmz1: flags=201000843 mtu 9000 index 3
inet 10.0.1.101 netmask ffffff00 broadcast 10.0.1.255
ether 2:8:20:fb:6a:82

dmz# netstat -rn | fgrep defa
default 10.0.0.1 UG 1 5156

Nice! I love Solaris …

Bluefish 1.3.3 under OpenSolaris or Solaris Nevada

To speed things up Bluefish 1.3.3 has static inline functions. However, GCC thinks that the “inlineness” is defined twice:

bftextview2_scanner.c:257: error: duplicate `inline’
bftextview2_scanner.c:305: error: duplicate `inline’
bftextview2_scanner.c:339: error: duplicate `inline’
bftextview2_scanner.c:383: error: duplicate `inline’
bftextview2_scanner.c:432: error: duplicate `inline’
gmake[3]: *** [bftextview2_scanner.o] Error 1
gmake[3]: Leaving directory `/var/tmp/bluefish-unstable-1.3.3/src’
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/var/tmp/bluefish-unstable-1.3.3/src’
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/var/tmp/bluefish-unstable-1.3.3/src’
gmake: *** [all-recursive] Error 1

This is an excerpt from the source:

#ifdef __GNUC__
__inline__
#endif

static inline void paint_margin_line(BluefishTextView *btv,
GdkEventExpose * event,
gint w,gint height) {

To fix remove one of the inline definitions for all functions. For example, change from:

static inline void paint_margin_line(BluefishTextView *btv,
GdkEventExpose * event,
gint w,gint height) {

to

static void paint_margin_line(BluefishTextView *btv,
GdkEventExpose * event,
gint w,gint height) {

Also see the previous post (/archives/432) on Bluefish.