반응형
반응형

MSSQL에서 몇십만건 정도되는 데이터를 엑셀에 보기좋게 넣으려다 보니

한번에는 클립보드 공간 limit가 있는지 안되길래, 10만건씩 나누어서 해보았다.


그런데, 복사할때마다 이전껄 초기화하고 다시 넣는 방식이 아니고

쌓아놓는 방식인가보다. 

몇번 하니까, 클립보드 공간이 모자라다고 나오고 ㅋㅋ 


아래 명령어를 입력하면, 클립보드가 초기화된다.


cmd /c "echo off | clip"
반응형
,
반응형

물리 장비에다가 여러대의 가상머신을 두는 가상환경을 구축하는 경우가 많다.


가상머신이 많아지는 경우, 동일한 물리 장비에서 제공되는 환경이다보니,

특정 가상머신이 CPU를 많이 차지하게 되면, 다른 머신들도 따라서 느려지게 되는데,

이 현상을 CPU Steal이라고 한다.


CPU를 많이 차지하고 있는 머신의 CPU Steal Time은 낮게 측정이되고,

같은 물리 장비에 구성된 다른 가상 머신의 경우 CPU Steal Time이 높게 측정이 되게 된다.


가상 환경을 구축해볼 일이 거의 없는데, 갑자기 이런 질문이 와서 당황을 했는데

아는 분이 답변을 해주셔서 정리를 하게 되었다.

반응형
,
반응형

최근 퍼블리셔에서 Linux Application을 깔아주지 못하겠다고 얘기를 해와서

어디서 줏어들은 Docker나 써보자! 하고 생각을 하였다.


Docker Image라는 것을 잘 구성해서, 다른 서버에서도 동일한 Docker Image를 가지고 Container로써 이용이 가능하다고 한다. 

(Docker Image를 띄우면 Container가 됨)


GitHub이나 Yum Repository처럼, 누군가 만들어둔 어플리케이션을 아래 url에서 검색하여, pull 명령어 하나만으로 받을 수 있다.


https://registry.hub.docker.com/


※ Docker 설치 과정은 간단해서 생략.


나는 Tomcat 8.0 버전을 설치할 것이므로, 아래와 같이 입력을 한다.

$ docker pull tomcat:8


Tomcat8 버전에 대한 Docker Image가 받아졌으므로, 준비해둔 war파일과 함께 daemon 형태로 띄우고, 외부에서 접근 가능하도록 port forwarding 설정까지 명령어 한번으로 해결을 해보자.

$ docker run -d -i -t --name="tomcat8-test" -p 8081:8080 -v /mypath/test.war:/usr/local/tomcat/webapps/test.war tomcat:8.0



docker run --help 명령어를 통해 옵션들에 대해 알아볼 수 있지만, 위에서 사용된 중요한 키워드에 대해 짚고 넘어가도록 하자.


-d : 데몬으로 띄움

-p 8081:8080 : image를 8080으로 띄우는데, host에서는 8081로 접근이 가능하도록 한다. (port forwarding)

-v /mypath/test.war:/usr/local/tomcat/webapps/test.war : -v는 볼륨 관련 명령어로써, host에 있는 파일을 container로 이동할 수가 있다. host와 container는 콜론 (:)으로 구분을 한다. host에 /mypath/test.war 파일을 docker container의 /usr/local/tomcat/webapps/test.war로 이동시킴.


추가로 옮겨야할 파일 (jdbc Driver 등)들은, docker cp 명령어를 이용하면 될 것 같다.  


DockerFile을 작성해서 운영하면 더 편하다고 하는데, 이건 좀 더 연구해서 다음 포스팅에 작성하도록 해야겠다.

반응형
,
반응형

Vagrant로 ubuntu 기본을 세팅해서 일일히 설치하는 방법도 있지만..

대부분 잘되지 않는 경우가 많기 때문에, 아예 Docker사용에 특화되어 있는 CoreOS를 직접 깔아서

Docker를 사용해보면 어떨까하는 마음에 시작하였다.


※ Vagrant는 워낙 설치가 간단해서 생략. (그냥 다운로드 받아서 더블클릭만 하면 끝)


1. git bash를 이용하여 VagrantFile이 들어있는 CoreOS를 받아온다. 

$ git clone https://github.com/coreos/coreos-vagrant.git


2. 받아온 폴더로 이동하여 vagrant up

$ cd coreos-vagrant
$ vagrant up


3. 터미널 띄우기

$ vagrant ssh


이제 윈도우에서 docker를 사용할 수 있는 환경이 구축되었습니다.

반응형
,
반응형

Vagrant를 알기 전까지.. 로컬에 리눅스 가상환경 구축을 위해서 했던 짓은

VirtualBox 설치 + OS iso 파일 구하기 + 기타 네트워크 설정 + 삼바 설정 + 엄청난 시간 + ... 등등 이었다.


하지만, Vagrant를 알고 나서는..

VirtualBox 설치 + Vagrant 설치 + 간단한 명령어 + 네트워크 및 공유폴더 설정 + 짧은 시간 으로 가능하게 되었다.



CentOS 가상환경을 Vagrant를 이용하여 구축해보자.


1. VirtualBox와 Vagrant를 설치한다. (모두 기본설정으로 깔아도 상관없음)


2. Vagrant 세팅

http://www.vagrantbox.es/ 에서 이미지 파일들을 제공을 하고 있는데, 이걸 그냥 vagrant에 add만 시켜주면 된다.

지금 다니는 회사에서 가장 많이 사용하는 CentOS 6.5버전을 깔아보도록 하자. 

위 사이트에 들어가보면, 아래 명령어 사용법도 친절하게 나와있음.

$ vagrant box add centOS6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
$ vagrant init centOS6.5
$ vagrant up


CentOS 가상환경 구축이 완료되었다


3. 이제 네트워크 설정을 해보자.

vagrant init을 하면, 현재 경로에 VagrantFile이라는 파일이 생기는데, 이것을 열어주고 아래와 같은 부분을 수정하여, 사설 IP를 하나 할당받도록 하자. 주석만 풀면 될 것임.

config.vm.network "private_network", ip: "192.168.33.10"

공인 아이피 설정은 config.vm.network "public_network" 부분을 이용하면 되는데, 공짜로 해주는 것 같진 않고..

별도 DNS서버 같은게 필요할 것 같아서 시도해보지 않았음.


4. 공유폴더 설정을 해보자.

config.vm.synced_folder "D:/data", "/home/vagrant/data"       // 내 컴퓨터의 D:/data경로를 가상 환경의 /home/vagrant/data와 동기화 시킨다.

심볼릭 링크처럼 동작을 하는데, 삼바보다 훨씬 편리한 듯..


5. 포트포워딩 설정을 해보자.

가상환경에서 구동중인 예를 들면, httpd가 80포트로 동작을 하고 있는데, 

사내에 다른 사람들은 내 가상환경에 공인 아이피 설정이 되어 있지 않는한, 접근을 할 수 있는 기회조차 얻지 못하게 되는게 보통이다.

그래서, Vagrant는 내 컴퓨터 IP의 포트를 통해 가상환경 포트로 접근이 가능하도록 포트포워딩 설정을 제공을 한다.

config.vm.network "forwarded_port", guest: 80, host: 8180      // 가상환경의 80포트를 내 컴퓨터의 8180포트로 들어갈 수 있도록 포워딩

참고로 여러개 설정 가능.


빌드 환경이 Linux 환경이거나, 공용으로 사용하는 Linux머신이 거지같이 느리다면...

Vagrant를 이용해서 가상환경을 구축해서 사용하는 것을 추천합니다.


Docker 공부하려고 Vagrant부터 알아보고 있는데, Docker보다 이게 더 대박인듯...


※ 머신 부팅 시 계속적으로 timeout이 지속된다면, cmos 셋업의 cpu 가상화 지원 활성화 옵션을 켜면 해결이 되는 경우가 있다.

반응형
,
반응형

모든 설치방법은 Docker 공식홈 (https://docs.docker.com/installation/centos/) 을 참고했음.


CentOS 6.5는 일반적으로 Epel Repo를 포함하지 않기 때문에,

CentOS 7버전대와는 다르게 yum install docker-io 명령어를 쳐도 찾을 수 없다고 나온다.


해결방법은 Epel Repo를 Yum repository에 추가해주면 된다.


먼저 Epel Repo가 OS에 설치되어 있는지 확인한다.

$ rpm -qa | grep epel-release


아무것도 나오지 않으면, Epel Repo가 없는 것이고, 뭔가 나오면 추가로 설치할 필요가 없다.


CentOS 6.x 버전에서 지원하는 최신버전의  Epel Repo를 설치해준다.

$ sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm


아래 명령어를 입력하여 yum repo에 포함이 되었는지도 확인 후,

$ yum repolist


Docker-io를 설치해준다.

$ yum install docker-io


Docker service를 올려준다

$ sudo service docker start


이제 CentOS 6.5버전에서 Docker를 사용할 수 있게 되었다!

참고로 Docker를 사용할 때 모든 명령어는 sudo 권한을 필요로 하는 것 같다.

반응형
,
반응형

1. 어떤시간대를 머신에서 지원하는지 확인

$ ls /usr/share/zoneinfo/


2. Seoul시간으로 변경

$ cp -f /usr/share/zoneinfo/Asia/Seoul /etc/localtime


물론 소프트 심볼릭 링크로 처리하는 경우도 많다.

반응형
,
반응형

추후 버전에선 고쳐질지도 모르겠는데,

Vagrant 1.7.3 버전에서는 config.vm.network의 "forwarded_port" 설정 시에, host_ip를 명시해주지 않으면,

virtualBox에서 공백으로 인식을 하게되어, vm에 private ip가 할당되어 있다고 하더라도,

동일한 네트워크 상의 다른 사람 PC에서는 접근을 못하는 문제가 생기는 것 같다.


이럴 경우에는 host_ip 옵션을 추가로 줘서, 내 PC의 private IP를 명시를 해주면, 해결이 된다.


ssh 접근의 경우 default로 설정이 되어 있어서, VagrantFile에는 명시가 되어 있지 않은데,

설정 파일에 22번 포트에 대해서 명시를 해주면, default설정이 새롭게 명시한 설정으로 매핑이 된다.

반응형
,
반응형

RabbitMQ fanout 테스트를 위해, 로컬에서 vagrant로 돌고 있던 동일한 vm이 하나 더 필요하게 되었다.


이런경우 vagrant up시에 뒤에 붙는 파라미터 값으로 구분을 해야 하는데,

VagrantFile을 열어서 아래와 같이 처리를 해주면된다.


config.vm.define "vm1" do |vm1|
// 파라미터로 vm1이라는 문자열이 들어오면 실행.
end

config.vm.define "vm2" do |vm2|
// 파라미터로 vm2이라는 문자열이 들어오면 실행.
end



처음에 설정할 땐, vm1, vm2를 init이나 box add시에 따로 지정을 해줘야되는줄 알았는데,

그냥 파라미터여서 허무했다.

반응형
,
반응형

vagrant package 하기 전에,

/etc/udev/rules.d/70-persistent-net.rules 경로에 가서 이 파일을 지워주면 된다고 한다.


자체적으로 mac address를 생성하는데, 그게 중복되서라나 뭐라나;;


이미 받은 경우에는 vagrant ssh로 접근해서 지우고 reboot하면 된다.

반응형
,
반응형