Solaris ufs and filesystemio_options with setall

I have a quick question about direct i/o and the filesystemio_options parameter, in particular on ufs and Solaris. My understanding is that if we set this to setall (or directio), Oracle will, at its discretion, use direct i/o for file access. However, in the couple of machines I've looked at where I have this parameter set, Oracle is not doing any direct i/o whatsoever (I will explain in a minute how exactly I verify this). I am wondering if anyone has been able to get 10g to do direct i/o on a Solaris box using ufs, with filesystemio_options (as opposed to using the forcedirectio mount option)? I am trying to determine if there is something in my configuration prohibiting this, or if in fact Oracle is explicitly choosing not to use direct i/o for some reason, or if it's a bug.
There are two ways I can verify no direct i/o is happening in my case.
1) Via truss:
[ first flush the buffer cache ]
[email protected]> alter system flush buffer_cache;
System altered.
[ Then issue (as user oracle) ]
oracle@ironman:~$ truss -f -t open,ioctl -u ':directio' sqlplus user/pass
... (lots of output here)
[ Then type ]
create table a as select * from big_table;
You will see that for every data file opened, directio is explicitly turned off:
24399: open("/u04/oradata/BIA/APM_DATA13.dbf", O_RDWR|O_DSYNC) = 11
24399: -> libc:directio(0x10f, 0x0, 0x1, 0x0)
24399: ioctl(271, 0x2000664C, 0x00000000) = 0
The 3rd parameter to the ioctl() call is 0 for directio_off, and 1 for
directio_on.
2) Via the kernel stats. Here is a short snippet of code that will
function similar to iostat, but for direct i/o activity:
alive@staind:/tmp/dio/kstat$ cat diomon.c
#include <stdio.h>
#include <kstat.h>
#define DELAY 3
#define LOOP 1
int main (int argc, char **argv) {
kstat_ctl_t *kc;
kstat_t *ksp;
u_int delay, i = 0;
int loop;
struct ufs_directio_kstats {
u_int logical_reads;
u_int phys_reads;
u_int hole_reads;
u_int nread;
u_int logical_writes;
u_int phys_writes;
u_int nwritten;
u_int nflushes;
} ks1, ks2;
if (!(kc = kstat_open())) {
perror("Error on kstat_open()");
exit(1);
if (!(ksp = kstat_lookup(kc,
"ufs directio",
-1,
"UFS DirectIO Stats"))) {
printf("Cannot find \
[ufs directio:*:UFS DirectIO Stats]\n");
exit(2);
if (argc > 1 && (atoi(argv[1]) > 0)) {
delay = atoi(argv[1]);
} else
delay = DELAY;
if (argc > 2 && (atoi(argv[2]) > 0))
loop = atoi(argv[2]);
else if (argc > 1)
loop = -1;
else
loop = LOOP;
if (kstat_read(kc, ksp, &ks1) == -1) {
perror("Error in kstat_read()");
exit(3);
while (i != loop) {
if (!(i % 25))
printf("%10s%10s%10s%10s%10s%10s%10s%10s\n",
"lreads", "preads", "lwrites", "pwrites",
"Kread", "Kwrite", "holeread", "nflush");
sleep(delay);
if (kstat_read(kc, ksp, &ks2) == -1) {
perror("Error in kstat_read()");
exit(3);
printf("%10u%10u%10u%10u%10u%10u%10u%10u\n",
ks2.logical_reads - ks1.logical_reads,
ks2.phys_reads - ks1.phys_reads,
ks2.logical_writes - ks1.logical_writes,
ks2.phys_writes - ks1.phys_writes,
(ks2.nread - ks1.nread) / 1024,
(ks2.nwritten - ks1.nwritten) / 1024,
ks2.hole_reads - ks1.hole_reads,
ks2.nflushes - ks1.nflushes);
i++;
ks1 = ks2;
Compile with:
gcc -o diomon diomon.c -lkstat
Run with:
./diomon 3
or similar.
If there are any non-zero numbers, direct i/o is in fact happening. However in my case, there are none. Keep in mind the kernel level stats are per system, so it is easier to test this if no other directio is happening on the machine (i.e. no partitions mounted with forcedirectio and no programs explicitly using it (none that I know of do by default on Solaris)).
I have tried doing parallel queries, direct path loads, etc. but did not find any evidence of directio actually happening. Maybe Oracle is really doing "the right thing" and not using it, but I figured some activity may benefit from direct access.
Any comments are appreciated!

I have a quick question about direct i/o and the filesystemio_options parameter, in particular on ufs and Solaris. My understanding is that if we set this to setall (or directio), Oracle will, at its discretion, use direct i/o for file access. However, in the couple of machines I've looked at where I have this parameter set, Oracle is not doing any direct i/o whatsoever (I will explain in a minute how exactly I verify this). I am wondering if anyone has been able to get 10g to do direct i/o on a Solaris box using ufs, with filesystemio_options (as opposed to using the forcedirectio mount option)? I am trying to determine if there is something in my configuration prohibiting this, or if in fact Oracle is explicitly choosing not to use direct i/o for some reason, or if it's a bug.
There are two ways I can verify no direct i/o is happening in my case.
1) Via truss:
[ first flush the buffer cache ]
[email protected]> alter system flush buffer_cache;
System altered.
[ Then issue (as user oracle) ]
oracle@ironman:~$ truss -f -t open,ioctl -u ':directio' sqlplus user/pass
... (lots of output here)
[ Then type ]
create table a as select * from big_table;
You will see that for every data file opened, directio is explicitly turned off:
24399: open("/u04/oradata/BIA/APM_DATA13.dbf", O_RDWR|O_DSYNC) = 11
24399: -> libc:directio(0x10f, 0x0, 0x1, 0x0)
24399: ioctl(271, 0x2000664C, 0x00000000) = 0
The 3rd parameter to the ioctl() call is 0 for directio_off, and 1 for
directio_on.
2) Via the kernel stats. Here is a short snippet of code that will
function similar to iostat, but for direct i/o activity:
alive@staind:/tmp/dio/kstat$ cat diomon.c
#include <stdio.h>
#include <kstat.h>
#define DELAY 3
#define LOOP 1
int main (int argc, char **argv) {
kstat_ctl_t *kc;
kstat_t *ksp;
u_int delay, i = 0;
int loop;
struct ufs_directio_kstats {
u_int logical_reads;
u_int phys_reads;
u_int hole_reads;
u_int nread;
u_int logical_writes;
u_int phys_writes;
u_int nwritten;
u_int nflushes;
} ks1, ks2;
if (!(kc = kstat_open())) {
perror("Error on kstat_open()");
exit(1);
if (!(ksp = kstat_lookup(kc,
"ufs directio",
-1,
"UFS DirectIO Stats"))) {
printf("Cannot find \
[ufs directio:*:UFS DirectIO Stats]\n");
exit(2);
if (argc > 1 && (atoi(argv[1]) > 0)) {
delay = atoi(argv[1]);
} else
delay = DELAY;
if (argc > 2 && (atoi(argv[2]) > 0))
loop = atoi(argv[2]);
else if (argc > 1)
loop = -1;
else
loop = LOOP;
if (kstat_read(kc, ksp, &ks1) == -1) {
perror("Error in kstat_read()");
exit(3);
while (i != loop) {
if (!(i % 25))
printf("%10s%10s%10s%10s%10s%10s%10s%10s\n",
"lreads", "preads", "lwrites", "pwrites",
"Kread", "Kwrite", "holeread", "nflush");
sleep(delay);
if (kstat_read(kc, ksp, &ks2) == -1) {
perror("Error in kstat_read()");
exit(3);
printf("%10u%10u%10u%10u%10u%10u%10u%10u\n",
ks2.logical_reads - ks1.logical_reads,
ks2.phys_reads - ks1.phys_reads,
ks2.logical_writes - ks1.logical_writes,
ks2.phys_writes - ks1.phys_writes,
(ks2.nread - ks1.nread) / 1024,
(ks2.nwritten - ks1.nwritten) / 1024,
ks2.hole_reads - ks1.hole_reads,
ks2.nflushes - ks1.nflushes);
i++;
ks1 = ks2;
Compile with:
gcc -o diomon diomon.c -lkstat
Run with:
./diomon 3
or similar.
If there are any non-zero numbers, direct i/o is in fact happening. However in my case, there are none. Keep in mind the kernel level stats are per system, so it is easier to test this if no other directio is happening on the machine (i.e. no partitions mounted with forcedirectio and no programs explicitly using it (none that I know of do by default on Solaris)).
I have tried doing parallel queries, direct path loads, etc. but did not find any evidence of directio actually happening. Maybe Oracle is really doing "the right thing" and not using it, but I figured some activity may benefit from direct access.
Any comments are appreciated!

Similar Messages

  • IPlanet Messaging Server 5.2 (for Solaris 8 and 9) with patch 5.2hf2.13

    Hi..
    iPlanet Messaging Server 5.2 Patch 2 (built Jul 14 2004)
    libimta.so 5.2 Patch 2 (built 19:30:12, Jul 14 2004)
    I heard that SUN have released security vulnerability in Sun Java System or iPlanet Messaging Servers that may allow remote unprivileged users to craft specific messages which contain Javascript to be executed in the end user's browser.
    The problem can be solved by using iPlanet Messaging Server 5.2 (for Solaris 8 and 9) with patch 5.2hf2.13 or later..
    where can I download patch 5.2hf2.13 for messaging server 5.2 ?

    Hi,
    If you have a support contract with SUN you can log a service request to get a copy of the patch via:
    http://www.sun.com/service/online/
    Regards,
    Shane.

  • Making Solaris package and dealing with symlinks

    Hello,
    we are developping an application that runs on Solaris 8 and 9, and we distribute it as a number of packages. We have a problem in one package where we have to install some binaries in a subdirectory under /opt. If we put:
    d base /opt 0775 root bin
    d base /opt/subdir 0755 root bin
    In the template file used in building the package, then we have a problem on one of our machines, where /opt
    is a symlink to /export/home/opt - it seems pkgadd wants /opt to be a regular directory, so it creates it, overwriting the symlink and making everything previously under /opt unavailable (though it's still under /export/home/opt).
    If we remove the files, when we install the package on a machine without an /opt directory, the install fails. Is there some way around these two corner cases? Like telling pkgadd that if /opt is a symlink to leave it like that?

    I checked out https://wiki.archlinux.org/index.php/Initramfs, and I'm not sure what to do. I rebooted a few times in attempt to get things going. I'm assuming I need to start by logging in to the live CD as root and mounting the sda in which Arch is installed? I don't know how to mount root nor know the complete title for the Arch partition (sda x,x). Sorry for the hassle.
    Edit: Found https://wiki.archlinux.org/index.php/Ch … partitions. Be back in a bit.
    I currently have the temporary filesystems mounted, chrooted, and am in bash.
    # mkinitcpio -p linux
    doesn't work. I tried
    mkinitcpio -g ..... 3.6.10-1-ARCH
    and I received something about 3.6.10 and a module directory.
    Last edited by illusory (2012-12-23 23:26:00)

  • Monitoring Oracle Virtual Machine for Solaris servers and LDOMs

    Hi all,
      could anyone tell me if we can monitor Oracle Virtual Machine for Solaris servers and LDOMs with only Oracle Enterprise Manager Cloud Control 12c, or shall we need to install Ops Center ?
    Thank you in advance.

    I had the same issue. Upgrading Virtual box from 4.1.16 to 4.1.20 solved the problem.

  • Solaris 10 and Hitachi LUN mapping with Oracle 10g RAC and ASM?

    Hi all,
    I am working on an Oracle 10g RAC and ASM installation with Sun E6900 servers attached to a Hitachi SAN for shared storage with Sun Solaris 10 as the server OS. We are using Oracle 10g Release 2 (10.2.0.3) RAC clusterware
    for the clustering software and raw devices for shared storage and Veritas VxFs 4.1 filesystem.
    My question is this:
    How do I map the raw devices and LUNs on the Hitachi SAN to Solaris 10 OS and Oracle 10g RAC ASM?
    I am aware that with an Oracle 10g RAC and ASM instance, one needs to configure the ASM instance initialization parameter file to set the asm_diskstring setting to recognize the LUNs that are presented to the host.
    I know that Sun Solaris 10 uses /dev/rdsk/CwTxDySz naming convention at the OS level for disks. However, how would I map this to Oracle 10g ASM settings?
    I cannot find this critical piece of information ANYWHERE!!!!
    Thanks for your help!

    You don't seem to state categorically that you are using Solaris Cluster, so I'll assume it since this is mainly a forum about Solaris Cluster (and IMHO, Solaris Cluster with Clusterware is better than Clusterware on its own).
    Clusterware has to see the same device names from all cluster nodes. This is why Solaris Cluster (SC) is a positive benefit over Clusterware because SC provides an automatically managed, consistent name space. Clusterware on its own forces you to manage either the symbolic links (or worse mknods) to create a consistent namespace!
    So, given the SC consistent namespace you simple add the raw devices into the ASM configuration, i.e. /dev/did/rdsk/dXsY. If you are using Solaris Volume Manager, you would use /dev/md/<setname>/rdsk/dXXX and if you were using CVM/VxVM you would use /dev/vx/rdsk/<dg_name>/<dev_name>.
    Of course, if you genuinely are using Clusterware on its own, then you have somewhat of a management issue! ... time to think about installing SC?
    Tim
    ---

  • Build Solaris 8 branded zone with ufs /var  etc

    We have an ancient application which runs on Solaris 8 which we would like to move to a Branded zone. The issue we have is that the application does a fstyp (but within the binary) on any file system that its is writing to and barfs if it doesn't recognise the type. Unfortunately we are limited to basically ufs and vxfs.
    The problem is that I need to have /var configured as a UFS filesystem during the zone build ......
    Now I know all of the methods that can be used to mount a filesystem within a branded zone:
    1) Add FS within zonecfg ... fstype doesn't return UFS
    2) LOFS : Doesn't return UFS
    3) Mounting a file system after zone boot .... Great for non-system filesystems but not for /var
    4) "add device" ... might work BUT I need to build /var during zone configuration .,.....
    Any ideas?
    Edited by: user13012897 on Dec 8, 2010 5:41 AM

    It's not straightforward, but I'd consider writing an interposer library that gets loaded via LD_PRELOAD and gives a different answer than fstyp() would normally give.
    http://www.itworld.com/UIR000929interposers

  • Experience with Solaris 10 and 11 on Oracle VM 3.0.3?

    Greetings,
    We are trying to confirm with "first hand experience" how/if Oracle VM 3.0.3 supports Solaris 10 and 11 x86. For example, a) does OVM support Solaris as advertised? b) if yes, are there caveats excluding the HVM limitations? c) have you been able to use the Solaris Templates?
    Thank you,
    Roddy

    I ran into the same problem. Tried manually create software raid using the shell (ctrl F2 or F4), but it keeps shutting down the software raid and anaconda would die.
    Then I tried to use single disk but with logical volume (also set up manually from the shell). But after the installation, the system would not boot. Looking at the init script content in the initrd, I don't think it supports lvm.
    So I went back to square one, using the one disk with no lvm, but customized partition size. Will use raidder to build a raid 1 after this.
    Base on this experience installing the server, and also the VM Manager, I think Oracle VM is seriously going downhill. I can't believe how they would hire anyone that writes such poor quality installation scripts and package. Try mounting the VM Manager ISO under /tmp/mnt and install from there and you will see what I mean.
    ling

  • Parameters of NFS in Solaris 10 and Oracle Linux 6 with ZFS Storage 7420 in cluster without database

    Hello,
    I have ZFS 7420 in cluster and OS Solaris 10 and Oracle Linux 6 without DB and I need mount share NFS in this OS and I do not know which parameters are the best for this.
    Wich are the best parameters to mount share NFS in Solaris 10 or Oracle Linux 6?
    Thanks
    Best regards.

    Hi Pascal,
    My question is because when We mount share NFS in some servers for example Exadata Database Machine or Super Cluster  for best performance we need mount this shares with specific parameters, for example.
    Exadata
    192.168.36.200:/export/dbname/backup1 /zfssa/dbname/backup1 nfs rw,bg,hard,nointr,rsize=131072,wsize=1048576,tcp,nfsvers=3,timeo=600 0 0
    Super Cluster
    sscsn1-stor:/export/ssc-shares/share1      -       /export/share1     nfs     -       yes     rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp,vers=3
    Now,
    My network is 10GBE
    What happen with normal servers only with OS (Solaris and Linux)?
    Which parameters I need use for best performance?
    or are not necessary specific parameters.
    Thanks.
    Best regards.

  • Having problem with Solaris LUN and New disk

    Hi All,
    I'm using Solaris server, SunOS 5.10 Generic_144488-08 sun4u sparc SUNW, SPARC-Enterprise.
    There is a newly created LUN of 250GB. I've scanned the system and able to see the new LUN.
    I've also checked the LUN size and it's confirmed having 250GB.
    However, when I tried to create a new file system (UFS) and mount it, I'm only able to get less than 100GB.
    What went wrong? Or did I miss out anything?
    Appreciate for any help / advises.
    Thanks a lot.
    - Peter

    Hi,
    Thanks for your reply. Appreciate it.
    See below for my updates:
    How does the partition table look like ( format command) ?
    Current partition table (original):
    Total disk cylinders available: 48638 + 2 (reserved cylinders)
    Part Tag Flag Cylinders Size Blocks
    0 unassigned wm 0 - 48637 95.00GB (48638/0/0) 199221248
    1 unassigned wm 0 0 (0/0/0) 0
    2 backup wu 0 - 48637 95.00GB (48638/0/0) 199221248
    3 unassigned wm 0 0 (0/0/0) 0
    4 unassigned wm 0 0 (0/0/0) 0
    5 unassigned wm 0 0 (0/0/0) 0
    6 unassigned wm 0 0 (0/0/0) 0
    7 unassigned wm 0 0 (0/0/0) 0
    Primary label contents:
    Volume name = < >
    ascii name = <DGC-VRAID-0430 cyl 48638 alt 2 hd 256 sec 16>
    pcyl = 48640
    ncyl = 48638
    acyl = 2
    nhead = 256
    nsect = 16
    Part Tag Flag Cylinders Size Blocks
    0 unassigned wm 0 - 48637 95.00GB (48638/0/0) 199221248
    1 unassigned wm 0 0 (0/0/0) 0
    2 backup wu 0 - 48637 95.00GB (48638/0/0) 199221248
    3 unassigned wm 0 0 (0/0/0) 0
    4 unassigned wm 0 0 (0/0/0) 0
    5 unassigned wm 0 0 (0/0/0) 0
    6 unassigned wm 0 0 (0/0/0) 0
    7 unassigned wm 0 0 (0/0/0) 0
    Which partition did you use to create the ufs file system ?
    103. emcpower19a <DGC-VRAID-0430 cyl 48638 alt 2 hd 256 sec 16>
    /pseudo/emcp@19
    Why was ufs choosen at all instead of zfs ?
    -> I've used newfs command to create a new file system and did not specify UFS, however, it's been assigned automatically.
    Appreciate for your advise.
    Thank you.
    - Peter

  • How to export and import from AIX to solaris a whole schema with different

    how to export and import from AIX to solaris a whole schema with different character set
    import done in US7ASCII character set and AL16UTF16 NCHAR character set
    import server uses WE8ISO8859P1 character set (possible charset conversion)
    Import terminated successfully with warnings.

    The conversion between the character sets on the two servers are handled automatically. Export from one server will export the data given the character set defined on that server. Import into another server will import the data given the character set defined on that server, performing a conversion if necessary. This can be a problem when going from single-byte to a multi-byte character set. In your case, the warning is simply for your information, shoule be no real problem given the character sets you're using.
    For more info...check out (pertains to 9i):
    Export
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch01.htm#1006791
    Character Ste Migration
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96529/ch10.htm#1656
    HTH

  • Oracle 9 with Solaris 10 and VCS 5.0

    Hi All,
    I've looked around for the following combo, but I usually get Solaris 9 with VCS 4.0:
    Oracle 9i on Solaris 10 and Veritas Cluster Server 5.0.
    I've got the VCS 5.0 in, it's up and running on two nodes. I want to install Oracle 9i on each node.
    Do I need any special Oracle 9i RAC?
    Any steps, suggestions, tips, or even script to automate would be greatly appreciated.
    I was looking at OraToolKit.ch site, but looks like they don't cover Oracle 9 anymore.
    Thank you,
    Nitin

    Oracle 9 is in extended support mode and that will end July 31 of this year.
    Why would you want to build something new with an antique foundation?
    If you can explain it we may be able to help you further.

  • Solaris 10 system freezes with ZFS + NFS

    I've been playing around with Solaris 10 and attempting to create a file server using ZFS + NFS. While writing to the NFS share over my network the solaris system will completely freeze requiring me to hit the power button. It is a total freeze, the GUI becomes unresponsive and you are unable to ssh into the machine as well. The amount of data I can write before the system freezes varies, sometimes only a few megs, other times a few hundred.
    I'm running fully up to date x86 Solaris 10 on a system with 512MB of RAM. I know this isn't the optimal solution for a ZFS server but I don't see how this could be the source of the problem either. I have tried with ethernet and wireless interfaces as well as using samba instead of NFS and all have the same issue. Writing files to Samba and NFS shares on the UFS file system on the same box didn't exhibit this problem. The logs don't contain anything about this issue as far as I can tell.
    My zpool has 3 PATA disks of different sizes and have no errors. While tracking down the problem I had top going and didn't see any out of the ordinary memory or CPU usage up until the freeze.
    I have been troubleshooting this issue on and off for a while and figured it was time to look for some help. I'm an experienced Linux user but quite a novice when it comes to Solaris so I am hoping someone could point me in the right direction.
    Thanks in advance.
    Ryan

    142909-17 is pretty recent (equivalent to S10u9). I scanned the list of bugs fixed since then to see if any existing fixes might resemble this and nothing seemed similar to this so I'm afraid I don't have any suggestions.

  • Solaris Cluster and Global Devices for sapmnt

    Hi,
    IHAC that is considering using Global Devices for /usr/sapmnt in a SAP environment, since they need all SAP nodes looking for the same sapmnt area. Is this a recommended approach?
    Generally, we are working with S11.1/Solaris Cluster 4.1 to implement Netweaver 7.2 and ERP 6.0.
    I appreciate your comments.
    Regards, Rafael.

    Hi Rafael,
    /usr/sapmnt is a file system, as such I assume when you ask about usage of global devices you really mean to ask about using a global file system (ie. an UFS file system with mount option global)?
    If that is true, then the answer is yes.
    The data service guide for SAP NetWeaver (http://docs.oracle.com/cd/E29086_01/html/E29440/installconfig-10.html#installconfig-34) does mention in the section "configuration considerations":
    "The SAP enqueue server and SAP replica server run on different cluster nodes. Therefore, the SAP application files (binary files, configuration files, and parameter files) can be installed either on the global file system or on the local file system. However, the application files for each of these applications must be accessible at all times from the nodes on which these applications are running."
    And the deployment example in the appendix (http://docs.oracle.com/cd/E29086_01/html/E29440/gmlbt.html#scrolltoc) makes use of a global mounted /sapstore file system.
    Regards
                 Thorsten

  • How to run solaris 10 and windows, dual booting.

    I installed solaris 10 first and then windows 2000 on my celeron pc. Nopw every time i start pc, it starts windows, coz of windows mbr.
    how to set at startup before booting the option which ask for solaris or windows? suggest me a easy way as i am a new user of solaris.

    The procedure to reinstall the Solaris boot sector
    (along with lots of info on dual booting) can be
    found here: http://multiboot.solaris-x86.org
    Another approach is to use the Windows 2000/XP boot
    menu. Assuming your S10 DVD is on D:\, type at a
    command prompt:
    copy
    d:\Solaris_10\Tools\Boot\usr\lib\fs\ufs\mboot
    c:\bootsect.solThen add the following line at the end of the
    C:\boot.ini file:
    C:\bootsect.sol="Solaris"(google "boot.ini" for more info on the above)
    Now Windows will display a boot menu where you can
    choose between Win2K and Solaris.
    BlaiseThe menu appears as you mentioned but there is another problem it tells me that there is no active partitions.
    i have to hards in my system, and it seems i screwed the booting thing during installation since this is the first time i install solaris.
    regards
    firas nemer

  • I'm new to Solaris 10 and need help to setup ftp server

    hello!
    I just installed Solaris 10 and I'm trying to setup an ftp server (with ftpd) but I don't know how to do that
    my server doesn't need any security or authentication
    I'm looking for the default shared files directory
    Also wondering what to change in what configuration file...
    This OS looks quite similar to some linux I used before but the differencies are big enough to drive me crazy
    anyway thanks for your help.
    Any advice is welcome :-)

    cd /etc/ftpd
    vi ftpusers
    put a # in front of root and any other users that you wish to be able to ftp
    then svcadm restart ftp
    If you want to set up an anonymous ftp server, there is a little more involvement

Maybe you are looking for