Skip to content

yyu-nim/poseidonos-rtype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Poseidon OS R-type

ν¬μ„Έμ΄λˆ OS의 λ©”λͺ¨λ¦¬ μ•ˆμ •μ„±μ„ ν–₯μƒμ‹œν‚€κΈ° μœ„ν•œ μ‹€ν—˜μ μΈ λ°©μ•ˆμ˜ ν•˜λ‚˜λ‘œ RUST λ„μž…μ„ 생각해 λ³Ό 수 μžˆλ‹€. C++ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ RUST둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ ν•˜λŠ” λ‹€μ–‘ν•œ 방법이 μžˆμ„ 수 μžˆλŠ”λ°, λ³Έ repoμ—μ„œλŠ” νƒ‘λ‹€μš΄ λ°©μ‹μœΌλ‘œ, RUST둜 μž‘μ„±λœ main()μ—μ„œ μ‹œμž‘ν•˜μ—¬, POS에 κ΅¬ν˜„λœ κΈ°λŠ₯듀을 κ·ΈλŒ€λ‘œ κ°€μ Έμ˜€κ±°λ‚˜, Fakeλ₯Ό κ°€μ Έμ˜€κ±°λ‚˜, Stub λ§Œλ“œλŠ” λ°©μ‹μœΌλ‘œ 진행해볼 μ˜ˆμ •μ΄λ‹€. ν˜„μž¬λ‘œμ„œλŠ” μˆœμˆ˜ν•œ ν˜ΈκΈ°μ‹¬/재미/κ³΅λΆ€μ˜ λͺ©μ μž„을 λΆ„λͺ…νžˆ ν•˜κ³ , Poseidon OS 과제의 λ‘œλ“œλ§΅κ³ΌλŠ” 관련이 μ—†μŒμ„ 미리 λ°ν˜€λ‘”λ‹€. Productionμ—μ„œμ˜ μ‚¬μš©μ„ κΆŒν•˜μ§€ μ•ŠλŠ”λ‹€. PR ν™˜μ˜!

각 .cpp νŒŒμΌμ— λŒ€ν•΄ 그에 μƒμ‘ν•˜λŠ” .rs νŒŒμΌμ„ ν•˜λ‚˜μ”© λ§Œλ“€μ–΄κ°ˆ μ˜ˆμ •μ΄λ‹€. SPDK의 κ²½μš°μ—λŠ”, stub만 λ§Œλ“€μ–΄ λ‘˜ 생각이고 좔후에 μ‹€μ œ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ 링크될 수 μžˆλ„λ‘ μ‚΄νŽ΄λ³΄λ©΄ 될 것 κ°™κ³ , NVMe λ””λ°”μ΄μŠ€μ˜ κ²½μš°μ—λŠ”, fake κ΅¬ν˜„μ„ ν•΄λ³Ό 생각이닀.

μ‹€ν–‰ν•˜λŠ” 법 1 (Local)

$ cargo run --bin poseidonos
[2022-10-20T11:01:16Z INFO  poseidonos] Hello, PoseidonOS R-type!
[2022-10-20T11:01:16Z INFO  poseidonos_rtype::spdk_wrapper::spdk] waiting for spdk initialization...
[2022-10-20T11:01:16Z INFO  poseidonos_rtype::spdk_wrapper::spdk::spdk_clib] Invoking start_fn in a new thread...
[2022-10-20T11:01:16Z INFO  poseidonos_rtype::spdk_wrapper::spdk] poseidonos started
[2022-10-20T11:01:16Z INFO  poseidonos_rtype::spdk_wrapper::spdk] spdk_app_start result = 0
[2022-10-20T11:01:17Z INFO  poseidonos_rtype::master_context::config_manager] Configuration [transport]
    trType = "TCP"
    bufCacheSize = 64
    numSharedBuf = 4096
    ioUnitSize = 512

    [journal]
    enable = true
    buffer_size_in_mb = 0
    number_of_log_groups = 2
    debug_mode = false
    interval_in_msec_for_metric = 1000
    enable_vsc = true
[2022-10-20T11:01:17Z INFO  poseidonos_rtype::helper::rpc::spdk_rpc_client] SpdkRpcClient is about to create a transport TCP 64 4096 512
[2022-10-20T11:01:17Z INFO  poseidonos_rtype::helper::rpc::spdk_rpc_client] TODO: send json message to domain socket on /var/tmp/spdk.sock
[2022-10-20T11:01:17Z INFO  poseidonos_rtype::metafs::config::metafs_config_manager] need to build a config
[2022-10-20T11:01:17Z INFO  poseidonos_rtype::main::poseidonos] CLI client is sleeping for 3 seconds...
[2022-10-20T11:01:17Z INFO  poseidonos_rtype::main::poseidonos] CLI server is up...
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::main::poseidonos] CLI client is sending CreateArray msg to CLI server...
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::main::poseidonos] Waiting CLI server to terminate...
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::main::poseidonos] Creating POS array...
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::array_mgmt::array_manager] ArrayManager has been created
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::array_mgmt::array_manager] Creating an array POSArray with devices DeviceSet { nvm: ["uram0"], data: ["data1", "data2", "data3"], spares: ["spare1"] } with meta RAID1 and data RAID5
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::array::state::array_state] ArrayState has been created
[2022-10-20T11:01:20Z INFO  poseidonos_rtype::array_components::array_components] [CREATE_ARRAY_DEBUG_MSG] Creating array component for POSArray
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::array::device::array_device_manager] Importing DeviceSet { nvm: ["uram0"], data: ["data1", "data2", "data3"], spares: ["spare1"] }...
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::array::device::array_device_manager] Exporting devices info with DeviceMeta
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::array::array] [UPDATE_ABR_DEBUG_MSG] Trying to save Array to MBR, name:POSArray, metaRaid:RAID1, dataRaid:RAID5
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::array::array] TODO: _CreatePartitions() ...
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::array::array] [POS_TRACE_ARRAY_CREATED] Array has been created
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::metafs::metafs] Creating MetaFs for POSArray with idx 0
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::volume::volume_manager] Creating VolumeManager for POSArray with idx 0
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::network::nvmf] Creating NVMf for POSArray with idx 0
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::allocator::allocator] Creating Allocator for POSArray
[2022-10-20T11:01:21Z INFO  poseidonos_rtype::journal_manager::journal_manager] Creating JournalManager for POSArray

μ‹€ν–‰ν•˜λŠ” 법 2 (Codespaces)

repo μ²«νŽ˜μ΄μ§€μ— "Code" 녹색 λ²„νŠΌ λˆ„λ₯Έ λ’€, "Codespaces" μ‹€ν–‰ν•˜λ©΄ κ³§λ°”λ‘œ vscode web λ²„μ „μœΌλ‘œ 컴파일 및 μ‹€ν–‰ κ°€λŠ₯ image