'Computer/Solaris / 솔라리스'에 해당되는 글 27건
- 2011.10.26 오픈솔라리스 설치노트
- 2011.10.25 오픈인디아나의 부족한 패키지를 넘어보자...
- 2011.10.25 ZFS / Zpool 명령어 정리
- 2011.10.25 PS1 수정시
- 2011.10.25 콘솔에서의 패키지 관리 명령어
- 2011.10.25 smcwebserver (Java Web Console) 설치법
- 2011.10.25 FTP 서버 실행하기
- 2011.10.25 오픈인디아나 Xchat에서 한글 사용방법
- 2011.10.25 Samba 설치하기
- 2011.10.25 MySQL 설정 몇 가지
오픈솔라리스/오픈인디아나는 리눅스와 비교해서 여러모로 프로그램/패키지가 참 부족하다.
그래서 Gentoo Prefix on Solaris라는 프로젝트도 쓸만한데, 내 경험으로는 빌드가 안된다. 그래서 바이너리를 배포하는 좋은 곳이 있어서 소개해드린다.
아래의 명령어만 입력하면 된다.
pfexec pkgadd -d http://get.opencsw.org/now
위의 명령어에서 멈추는데, Ctrl+C를 눌러서 종료를 해도 괜찮다. 이미 pkgutil은 /opt/csw/bin에 다운로드 되어있다.
이제 /opt/csw/bin/pkgutil -v를 해서 만약 버전이 1.7이 나오면 업그레이드를 해준다.
pfexec pkgutil -u pkgutil
pkgutil -v
무슨 패키지가 있나 궁금하시면 http://www.opencsw.org/get-it/packages/ 여기를 가보시면 된다.
zfs list : zfs에서 마운트되는 디렉토리(?) 리스트. 이 리스트에 있어야만 스냅샷을 찍을 수 있다.
zfs가 사용 중인 메모리 양 확인하기
kstat zfs:0:arcstats:size
pfexec mdb -k 한뒤, ::memstat
종료할 때는 ::quit
ZFS 용 storage pool 생성 & filesystem 생성
zpool status: 현재 pool 상태 확인zpool list: 현재 pool 리스트
zpool create -m /data externalHDD c1d0s0 c1d1s0 : /data 에 externalHDD라는 zfs파일시스템을 생성* pool의 가장 상위 레벨 장치는 오프라인 전환이 불가능하며, destroy 실행시 모든 자료가 날아간다.
zfs에 파일시스템 추가하기
zfs create rpool/경로명 (만약 /var/apache2/2.2/htdocs를 추가하고 싶으면, /var, /var/apache2/,
/var/apache2/2.2/, /var/apache2/2.2/htdocs 모두 추가해야한다.
예: zfs create rpool/var; zfs create rpool/var/apache2)
zfs set mountpoint=원하는경로명 rpool/경로명
(예: zfs set mountpoint=/var/apache2/2.2/htdocs rpool/var/apache2/2.2/htdocs)
zfs set sharenfs=on rpool/경로명
zfs set compression=on rpool/경로명
zfs get compression rpool/경로명
(참고: /var/mysql은, mysql 설치 이후에 zfs로 파일시스템 생성 후 마운트 시켰을 경우 mysql 디비테이블이 모두 망가졌었음. 따라서 먼저 zfs에서 파일시스템을 먼저 만들어놓고 mysql 설치했음)
스냅샷 찍을 때
jswlinux@server:/usr/lib/pkgconfig$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 10.0G 137G 81K /rpool
rpool/ROOT 5.87G 137G 19K legacy
rpool/ROOT/opensolaris 69.6M 137G 2.93G /
rpool/ROOT/opensolaris-05.2010 5.80G 137G 5.60G /
rpool/dump 1.44G 137G 1.44G -
rpool/export 1.26G 137G 22K /export
rpool/export/home 49.6M 137G 21K /export/home
rpool/export/home/jswlinux 49.6M 137G 40.1M /export/home/jswlinux
rpool/export/webserver 1.21G 137G 22K /export/webserver
rpool/export/webserver/ROOT 1.21G 137G 19K legacy
rpool/export/webserver/ROOT/zbe 1.21G 137G 1.20G legacy
rpool/swap 1.44G 138G 101M -
jswlinux@server:/usr/lib/pkgconfig$
라고 나왔는데, / 아래의 디렉토리에 대해서 스냅샷을 찍을 경우 rpool/ROOT에 recursive 옵션을 붙여도 스냅샷은 찍히지 않는다. 반드시 현재 BE의 이름, 즉 다시 말해 rpool/ROOT/opensolaris-05.2010에 대해서 스냅샷을 찍어야한다.
zfs snapshot -r rpool/ROOT/opensolaris-05.2010@20111025
웹서버 사이트 파일들의 전용스냅샷을 위한 zfs 파일시스템 생성
zfs create rpool/var
zfs create rpool/var/apache2
zfs create rpool/var/apache2/2.2
zfs create rpool/var/apache2/2.2/htdocs
(아래 명령어에서, 마운트포인트가 이미 존재해서 안된다는 메시지가 나오면, cd /var/apache2/2.2; mv htdocs ht식으로 이름을 잠시 변경해준다)
zfs set mountpoint=/var/apache2/2.2/htdocs rpool/var/apache2/2.2/htdocs
mv ht/* htdocs/
chown -R root:bin htdocs
rm -rf ht
zfs set sharenfs=on rpool/var/apache2/2.2/htdocs
zfs set compression=on rpool/var/apache2/2.2/htdocs
zfs get compression rpool/var/apache2/2.2/htdocs
나의 스냅샷 리스트
/usr/sbin/zfs snapshot -r rpool/var/apache2/2.2/htdocs@`date +%m.%d.%Y-%H:%M`
/usr/sbin/zfs snapshot -r rpool/export/home/jswlinux@`date +%m.%d.%Y-%H:%M`
/usr/sbin/zfs snapshot -r rpool/var/mysql@`date +%m.%d.%Y-%H:%M`
/usr/sbin/zfs snapshot -r rpool/ROOT/opensolaris-01.02.2010@`date +%m.%d.%Y-%H:%M`
zfs 캐쉬파일시스템 만들기 (USB 메모리스틱이나 SD카드로)
장치명을 확인하기 위해 데스크탑에 마운트 된 메모리스틱/SD카드의 이름을 참고하거나 혹은 format 명령어로 확인한다. 만약 format 명령어로 나오지 않는 타입의 메모리의 경우 format -e로 확인한다.
cat /etc/mnttab |grep 장치명
umount /media/장치명
zpool add rpool cache 장치명
zpool status 에서 확인
ZFS pool 관리
zpool add zfs_stripe c1dt4d0
zpool create -m /vfs/vfs_M vfs_mirror mirror c1t5d0 c1t6d0: mirror Pool 생성 (mount point 설정)
zpool create -m /vfs/vfs_R vfs_raid raidz c1t2d0 c1t3d0 c1t4d0: RAIDZ pool 생성. 최소 3개 이상 묶어줌
Pool Import / Export (사실상 하드를 뗏다붙였다하는 용도로 쓸 수 있다고 보면 된다)
pool Export
zpool export -f vfs_raid : 파일의 권한을 다른 컴퓨터에게 주기위해 권한을 포기.
Pool Import
zpool import vfs_raid
zpool import -d /dev/dsk : export에서 포기한 권한을 검색
Pool 제거 (destroy는 모든 자료를 삭제하니 주의한다)
zpool destroy zfs_mirror
Pool 내에 device Off-line
zpool offline vfs_mirror c1t5d0
Pool 내에 device On-line
zpool online vfs_mirror c1t5d0
Pool 내의 disk문제로 인한 disk 교체
zpool replace vfs_raid c1t3d0 c1t6d0 : c1t3d0 을 c1t6d0 으로 교체
disk 제거와 추가
zpool detach vfs_raid c1t3d0 : c1t3d0 제거
zpool attach vfs_raid c1t6d0 : c1t6d0 추가
하드디스크 2개를 따로 추가해서, 별도의 zpool2라는 풀을 만들고 그 둘을 미러링하는 경우
기존 Pool(Dataset) 에서 Filesystem 추가 생성 (자식 파일 시스템 생성)
zfs create vfs_mirror/d1
zfs create vfs_mirror/d2
자식 파일 시스템의 Mount Point 변경
zfs set mountpoint=/vfs/data1 vfs_mirror/d1
부모 파일시스템의 Mount Point변경
zfs set mountpoint=/vfs/parent1 vfs_mirror
오픈인디아나/오픈솔라리스/오라클 솔라리스 등에서 버츄얼 박스 사용시,
zfs에 가상디스크를 생성하면, zfs 특성상 모든 메모리를 캐시로 사용하려고 해서 시스템 전체가 느려짐.
따라서 버츄얼박스가 사용하려는 디렉토리를 별도의 마운트 포인트로 잡아주고 캐쉬를 비활성화한다.
zfs set primarycache=none, secondarycacne=none pool
기본 패키지 명령어
pkg search name
pkg install name
pkginfo name
pfexec pkgadd -d http://www.opencsw.org/pkg_get.pkg 이후,
Solaris 10 dvd 준비 (오픈솔라리스가 아님)
cd /media/SOL_10_1009_X86/Solaris_10/Product/
pfexec pkg. add -d . SUNWmcon SUNWmconr SUNWmcos SUNWmcosx SUNWmctag SUNWjato SUNWjhrt SUNWzfsgu
pfexec svcadm enable system/webconsole:console
pfexec smcwebserver start
웹브라우저에서 https://localhost:6789/
1. /etc/services 파일에서 포트 확인
2. svcs ftp 확인 후 있으면 시작
3. 없으면
ls /usr/sbin/in.ftpd 파일 확인
4. 없으면 설치
pfexec pkg install SUNWftp
5. 설정
vi /etc/inetd.conf ftp 관련항목 주석해제
pfexec inetconv (ftp 서버데몬의 manifest를 가져옴)
svcs ftp
pfexec svcadm enable ftp
svcs ftp
6. 상위디렉토리 접근 금지시
vi /etc/ftpd/ftpaccess 에서 restricted-uid * 추가
7. umask 변경
pfexec inetadm -m sec:/network/ftp:default exec="/usr/sbin/in.ftpd -a -u 002"
패키지 매니져에서 iconv로 검색, 나오는 모든 패키지 설치한 뒤,
Xchat에서 인코딩 CP949 선택
오픈인디아나에서 삼바 설치는 상당히 쉽다.
설치가 끝나면 /etc/samba/smb.conf 파일을 생성해준다.
[global]
workgroup = WORKGROUP
server string = FileServer
netbios name = FileServer
security = user
load printers = yes
log file = /var/samba/log/log.%m
max log size = 50
encrypt passwords = true
passdb backend = smbpasswd
unix charset = UTF-8
display charset = UTF-8
unix extensions = no
wide links = yes
follow symlinks = yes
veto files = /Thumbs.db/Backup/Desktop
dns proxy = no
hide dot files = yes
hide files = /.*/
case sensitive = yes
preserve case = yes
short preserve case = yes
[homes]
comment = File Server
browseable = no
read only = no
writable = yes
valid users = %S
dos filetimes = true
guest ok = no
create mask = 0664
directory mask = 0775
dont descend = config defaults
map archive = no
map system = no
map hidden = no
delete readonly = yes
inherit permissions = no
nt acl support = no
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
삼바의 설정에 대해서 모두 설명할 수는 없으니, 본인이 참고한 사이트를 알려드린다.
서비스 데몬을 시작해준다.
삼바 서비스를 이용할 사용자를 추가해준다.
오픈인디아나에서 MySQL은 AMP만 설치하면 같이 설치되니 별도로 해줄 것은 없다.
설치법: http://jswlinux.tistory.com/entry/오픈인디아나-151a에서-APM-설치하기
MySQL 초기 세팅
mysql -u root
use mysql
update user set password=password('password') where user='root';
flush privileges;
quit
Joomla에서 64비트 mysql 버그 (Error loading Modules: MySQL server has gone away) 해결법
svccfg -s mysql:version_51 setprop mysql/enable_64bit=true
svcadm refresh mysql:version_51
svcadm restart mysql:version_51