色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

基于Qt與libvirt構(gòu)建跨平臺虛擬機管理器:從連接到顯示

基于Qt與libvirt構(gòu)建跨平臺虛擬機管理器:從連接到顯示 簡介qt-virt-manager 是基于 Qt/C 開發(fā)的圖形化虛擬機管理工具面向系統(tǒng)管理員與運維開發(fā)人員解決異構(gòu)虛擬化平臺之間管理分散、操作門檻高的問題。它通過統(tǒng)一界面覆蓋 VMware、LXC、BHYVE、Libvirt、Hyper-V、OpenVZ、QEMU-KVM 與 VirtualBox 等主流技術(shù)用戶無需在不同客戶端之間來回切換即可集中創(chuàng)建、刪除、啟動、停止和監(jiān)控虛擬機并進行資源分配、網(wǎng)絡(luò)配置、克隆、備份與遷移等操作。壓縮包大小約 3.08MB便于快速獲取目前已有 353 人學(xué)習(xí)瀏覽。針對各底層虛擬化技術(shù)Qt 界面下的操作思路對理解 LXC 容器與 BHYVE 原生虛擬化的差異、Libvirt 抽象層的作用、QEMU-KVM 硬件虛擬化加速原理以及 Hyper-V/OpenVZ 的適用場景都有幫助。借助 Qt 跨平臺特性工具在 Linux、Windows 等桌面環(huán)境下提供一致體驗適合需要整合多種虛擬化技術(shù)、簡化日常管理流程的系統(tǒng)工程師也適合作為虛擬化入門學(xué)習(xí)與教學(xué)演示的配套資源。1. Qt虛擬機經(jīng)理不用再羨慕virt-manager的圖形化體驗我最初拿到 qt-virt-manager 這套資源時第一反應(yīng)是“它到底解決了什么”。畢竟桌面端早已有 virt-manager可它在技術(shù)棧上綁死了 GTK我想把它嵌進自己的 Qt 主程序、想換一套 QSS 皮膚、想跨平臺復(fù)用同一套界面邏輯都等于從頭再造輪子。這份用 Qt/C 重寫的虛擬機經(jīng)理底層依然走 libvirt把 QEMU/KVM、VirtualBox、LXC、bhyve、Hyper-V 這些后端統(tǒng)一收進來界面則換成完全可控的 Qt 控件。它解決的不只是“能看見虛擬機”而是讓桌面開發(fā)者和運維能拿到一套可編譯、可二次修改的虛擬化管理源碼。適合誰適合正在做桌面虛擬化管理工具、或需要在自定義界面里操作虛擬機的朋友新手也能照著源碼把連接鏈路跑通。2. 連接后端URI、驅(qū)動樹和安全認(rèn)證的拆解真正上手這套 Qt 虛擬機經(jīng)理之前建議先把連接層拆明白。因為所有功能——列表、啟動、快照、顯示——都建立在那一條連接 URI 上。URI 寫錯一個斜杠后面全白搭。2.1 先弄清 libvirt 驅(qū)動樹系統(tǒng)連接與用戶會話連接libvirt 不是虛擬化軟件本身它是一個統(tǒng)一管理接口。你用virConnectOpenAuth傳進去的 URI決定它選擇哪個驅(qū)動。驅(qū)動名來自編譯進 libvirt 的那一組后端模塊常見的有qemu、vbox、lxc、bhyve、hyperv、openvz、phyp等。注意URI 里的:///system和:///session兩個路徑代表完全不同的權(quán)限邊界system走系統(tǒng)的 libvirtd 守護進程需要 root 或加入libvirt組session走當(dāng)前用戶自己的進程不需要 root但它只能管理用戶自己名下的虛擬機。我用一個表把這組 URI 記下來排查的時候?qū)χ春芸旌蠖薝RI 示例說明QEMU/KVMqemu:///system最常用連接系統(tǒng)級 libvirtdVirtualBoxvbox:///system通過 vbox 驅(qū)動管理 VirtualBox 實例LXC 容器lxc:///system管理本機 LXC 容器bhyvebhyve:///systemFreeBSD 上的 bhyve 虛擬機Hyper-Vhyperv:///system通過 WSMan 協(xié)議連 Windows Hyper-VOpenVZopenvz:///session管理 OpenVZ 容器IBM PowerVMphyp:///system連接 PowerVM 管理分區(qū)這套資源里默認(rèn)走的是qemu:///system。你要把它改成 vbox 或 lxc不需要改界面代碼只需要改連接配置項。我在 qt-virt-manager 的源碼里看到它把 URI 作為配置字符串放到首選項頁這個設(shè)計很實用——不要把一個后端寫死在構(gòu)造函數(shù)里運行時切換能省去重新編譯。2.2 遠(yuǎn)程連接與認(rèn)證ssh 和 tcp 兩條路的參數(shù)差異跨機器管理虛擬機時URI 會帶上認(rèn)證方式。常見的有兩種寫法qemussh://userhost/system和qemutcp://host:16509/system。先說 ssh 這條。它依賴本機 ssh 客戶端第一次連接時 libvirt 會通過 sshd 跳轉(zhuǎn)到遠(yuǎn)端再用遠(yuǎn)端 libvirtd 的權(quán)限模型驗證。好處是傳輸加密、認(rèn)證簡單因為你本機已經(jīng)生成過 ssh key坑點是如果你用密鑰而非密碼登錄libvirt 的認(rèn)證回調(diào)會被跳過它直接走 ssh 層這時如果遠(yuǎn)端沒有把本地公鑰加進authorized_keys就會收到一個讓人摸不著頭腦的連接錯誤。再說 tcp 這條。它走 16509 端口通常要開啟 SASL 認(rèn)證。打開/etc/libvirt/libvirtd.conf把listen_tls 0、listen_tcp 1打開然后配置auth_tcp sasl。注意如果 libvirtd 是以 systemd 方式啟動還得修改/etc/libvirt/libvirtd.socket的監(jiān)聽開關(guān)。我在實際配置時踩過一次明明設(shè)置了listen_tcp 1服務(wù)卻不監(jiān)聽 16509 端口后來發(fā)現(xiàn)是新版本 libvirt 默認(rèn)走 socket 激活需要在/etc/libvirt/libvirtd.conf里把listen_tcp相關(guān)注釋放開并且重啟服務(wù)。tcp 連接如果不開 SASL測試時勉強能連上但生產(chǎn)環(huán)境絕對不要這么干——libvirt 的 tcp 不加認(rèn)證等于把主機的域管理接口裸奔在局域網(wǎng)里。2.3 C 側(cè)封裝連接virConnectOpenAuth 與 URI 校驗qt-virt-manager 的連接層直接用 libvirt 的 C API用 Qt 的QString轉(zhuǎn)成const char*傳進去。最關(guān)鍵的是認(rèn)證回調(diào)它決定你用什么方式完成 SASL/SSH 后的身份驗證。我一般會這樣封裝// hypervisor_connection.cpp #include libvirt/libvirt.h #include libvirt/virterror.h #include QDebug // 認(rèn)證回調(diào)把用戶名和密碼交給 libvirt static int authCallback(virConnectCredentialPtr cred, unsigned int ncred, void* userdata) { auto* pair static_castQPairQString, QString*(userdata); for (unsigned int i 0; i ncred; i) { if (cred[i].type VIR_CRED_AUTHNAME) { // 把 Qt 字符串拷貝到 libvirt 的緩沖里 QByteArray name pair-first.toUtf8(); cred[i].result strdup(name.constData()); cred[i].resultlen name.size(); } else if (cred[i].type VIR_CRED_PASSPHRASE) { QByteArray pass pair-second.toUtf8(); cred[i].result strdup(pass.constData()); cred[i].resultlen pass.size(); } else { return -1; // 不認(rèn)識的憑據(jù)類型直接失敗 } } return 0; } virConnectPtr openHypervisor(const QString uri, const QString user, const QString pass) { QPairQString, QString authPair(user, pass); virConnectAuth auth; auth.credtype nullptr; auth.ncredtype 0; auth.cb authCallback; auth.cbdata authPair; // 這里先嘗試讀寫連接失敗再退化為只讀 virConnectPtr conn virConnectOpenAuth(uri.toUtf8().constData(), auth, 0); if (conn nullptr) { const virError* err virGetLastError(); qWarning() 連接失敗: err-message; } return conn; }這段代碼里有幾個參數(shù)值得解釋。VIR_CRED_AUTHNAME表示讓 libvirt 回調(diào)來填寫用戶名VIR_CRED_PASSPHRASE是密碼。cred[i].result必須用strdup分配內(nèi)存libvirt 會自己釋放。我一般不用QString::toLocal8Bit而是toUtf8因為 libvirt 對證書里的非 ASCII 用戶名處理有歷史包袱UTF-8 出錯概率最低。打開連接之后不要順手把virConnectClose寫進析構(gòu)里就完事。如果界面里有多個窗口共享同一條連接你要自己維護引用計數(shù)。libvirt 的virConnectPtr不是線程安全的多個線程同時使用同一個指針時必須加鎖或保證串行訪問。我的做法是連接對象放在一個單獨的管理類里所有 libvirt 調(diào)用都經(jīng)過這個類的同步方法避免在多個線程里直接操作同一個virConnectPtr。2.4 連接層參數(shù)速查flags、超時與日志virConnectOpenAuth的 flags 參數(shù)有三個常用值0表示讀寫連接VIR_CONNECT_RO表示只讀VIR_CONNECT_NO_ALIASES表示不做 URI 別名解析。如果你只是做一個只讀監(jiān)控面板用VIR_CONNECT_RO就夠了這樣即便口令泄露也只能看不能改。超時參數(shù)不在這個函數(shù)里它由 libvirt 內(nèi)部的網(wǎng)絡(luò)超時和 SASL 協(xié)商超時決定默認(rèn)比較久。我一般會在連接前設(shè)置環(huán)境變量LIBVIRT_DEFAULT_URI同時把域名解析和連接放到 Qt 的QRunnable里執(zhí)行界面等 8 秒還沒返回就提示用戶檢查網(wǎng)絡(luò)。日志方面libvirt 默認(rèn)只打印virError到 stderr你可以設(shè)置LIBVIRT_LOG_FILTERS來控制export LIBVIRT_LOG_FILTERS3.libvirt 4.libvirt.qemu export LIBVIRT_LOG_OUTPUTS1:file:/tmp/libvirt_qt.log3表示只記錄 warning 級別的 libvirt 全局日志4.libvirt.qemu表示 qemu 驅(qū)動單獨記 debug。這個區(qū)分很重要全局日志寫太多會把文件撐爆qemu 驅(qū)動的 debug 才是排查 XML 生成問題的地方。3. 域?qū)ο蟛僮鲝?XML 定義到生命周期封裝連接建立之后下一個要處理的是域domain的增刪改查。libvirt 把所有虛擬機定義抽象成 XMLqt-virt-manager 也需要按照這個思路設(shè)計數(shù)據(jù)模型——不要自己發(fā)明結(jié)構(gòu)體存虛擬機配置直接把 XML 當(dāng)作源數(shù)據(jù)界面只是它的視圖。3.1 用 XML 定義一個最小可運行的 KVM 域一個最小域定義長這樣domain typekvm nameqt-demo/name memory unitKiB2097152/memory currentMemory unitKiB2097152/currentMemory vcpu placementstatic2/vcpu os type archx86_64 machinepc-q35-6.2hvm/type boot devhd/ /os features acpi/ apic/ /features clock offsetlocaltime/ on_poweroffdestroy/on_poweroff on_rebootrestart/on_reboot on_crashrestart/on_crash devices disk typefile devicedisk driver nameqemu typeqcow2/ source file/var/lib/libvirt/images/qt-demo.qcow2/ target devvda busvirtio/ /disk interface typebridge source bridgebr0/ model typevirtio/ /interface graphics typespice port5900 autoportyes listen127.0.0.1/ /devices /domain注意幾個參數(shù)的細(xì)節(jié)。內(nèi)存單位是 KiB2097152是 2 GiB如果你寫2會被解析成 2 KiB啟動時直接內(nèi)存不足。currentMemory表示當(dāng)前分配量可以小于memory用來做內(nèi)存熱插拔預(yù)留。vcpu的placementstatic表示固定 vCPU 數(shù)量如果改成placementauto會讓宿主機自動決定。虛擬機名稱我建議只用字母、數(shù)字、連字符和下劃線不要用中文。libvirt 對名稱中的非 ASCII 字符支持不徹底尤其在使用virDomainLookupByName時某些版本會返回domain not found但用virConnectListAllDomains又能看到它這就是名稱編碼問題導(dǎo)致的索引不一致。3.2 生命周期方法封裝創(chuàng)建、關(guān)閉、重啟與強制結(jié)束qt-virt-manager 的生命周期操作都封裝在一個DomainController類里對外暴露的是 Qt 風(fēng)格的方法內(nèi)部再轉(zhuǎn)成 libvirt 調(diào)用// domain_controller.cpp #include libvirt/libvirt.h #include QDebug class DomainController { public: virDomainPtr domain nullptr; virDomainPtr defineFromXML(virConnectPtr conn, const QByteArray xml) { // 從 XML 定義但先不啟動 virDomainPtr dom virDomainDefineXML(conn, xml.constData()); if (dom nullptr) { const virError* err virGetLastError(); qCritical() 定義失敗: err-message; } return dom; } int start() { // 對已定義的域做啟動 int ret virDomainCreate(domain); if (ret ! 0) { const virError* err virGetLastError(); qWarning() 啟動失敗: err-message; } return ret; } int shutdownByACPI() { // 模擬按電源鍵讓 guest 內(nèi)系統(tǒng)正常關(guān)機 int ret virDomainShutdownFlags(domain, VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN); return ret; } int forceDestroy() { // 相當(dāng)于拔電源危險操作需要二次確認(rèn) return virDomainDestroy(domain); } };virDomainDefineXML只定義不啟動適合做配置校驗virDomainCreateXML是定義加啟動一步到位但前提是你的 XML 里沒有引用尚未創(chuàng)建的存儲卷。VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN是模擬物理電源鍵Windows guest 看到的是“關(guān)機”事件比網(wǎng)絡(luò)發(fā) RPC 更通用如果你裝了 qemu-guest-agent可以改用VIR_DOMAIN_SHUTDOWN_GUEST_AGENT這樣能走 guest 內(nèi)部的干凈關(guān)機流程但前提是 agent 已運行。3.3 狀態(tài)輪詢與 Qt 事件循環(huán)不要在 GUI 線程里做阻塞調(diào)用這是我在讀這套資源源碼時最看重的一點。libvirt 的virDomainGetInfo和virDomainGetState都會阻塞如果直接在 QML 槽函數(shù)或 QWidget 按鈕事件里調(diào)用虛擬機數(shù)量一多界面就卡。正確做法是放到工作線程里。比如這樣// domain_worker.cpp #include QRunnable #include QThreadPool class RefreshDomainWorker : public QRunnable { public: virDomainPtr dom; void run() override { virDomainInfo info; if (virDomainGetInfo(dom, info) 0) { // 通過信號發(fā)回主線程更新界面 emit resultReady(info.state, info.nrVirtCpu); } } };這里的關(guān)鍵是QRunnable在QThreadPool里執(zhí)行得到結(jié)果后用信號槽傳回主線程。因為virDomainPtr來自同一個連接工作線程之間如果同時調(diào)用需要保證它們操作的是不同域?qū)ο蠡蛘邔φ麄€連接加互斥鎖。我采取的方案是連接層有一個QMutex每次調(diào)用前l(fā)ock調(diào)完再unlock性能損失不大但能避免同一連接下的未知崩潰。3.4 定義與啟動的邊界持久域和臨時域用virDomainDefineXML創(chuàng)建的域是持久的重啟宿主機后依然存在用virDomainCreateXML創(chuàng)建的域是臨時的關(guān)閉虛擬化服務(wù)后自動消失。qt-virt-manager 的“新建虛擬機”頁面里有兩個選項很多新手會把“定義”和“創(chuàng)建”混淆導(dǎo)致每次重啟宿主機后虛擬機列表變成空的。我在資源代碼里看到它把兩個操作分別做成了按鈕如果用戶選擇了“臨時域”界面會顯示一個顯眼的警告條這個交互值得借鑒。4. 顯示輸出接入SPICE 與 VNC 參數(shù)以及 Qt 窗口內(nèi)嵌的幾種做法管理虛擬機繞不開顯示輸出。qt-virt-manager 要承擔(dān)的不只是“列表管理器”它還得把訪客畫面交給用戶看。這一章我拆解顯示協(xié)議選擇和 Qt 集成方式。4.1 先選協(xié)議SPICE 與 VNC 的差異表在配參數(shù)前先做技術(shù)選型。VNC 和 SPICE 在虛擬化場景里的地位不一樣對比項SPICEVNC圖形傳輸支持多顯示器、動態(tài)分辨率調(diào)整固定分辨率分辨率變更需要重建會話音頻原生支持音頻轉(zhuǎn)發(fā)需要額外走 PulseAudio 端口剪貼板支持雙向剪貼板依賴 viewer 實現(xiàn)通常不支持視頻編碼自動降級編碼局域網(wǎng)表現(xiàn)好簡單編碼弱網(wǎng)表現(xiàn)一般客戶端支持spice-gtk / remote-viewer幾乎所有平臺都有 VNC client如果你管理的虛擬機以 Linux 桌面為主而且宿主機與訪客在同一局域網(wǎng)SPICE 是明顯更好的選擇。但如果訪客是 Windows 且沒裝 SPICE guest toolsSPICE 會退化成 VNC這時不如直接配 VNC少一層折損。4.2 從域配置里取圖形端口和密碼解析 XML 而不是調(diào)用隱藏 API很多剛開始寫 Qt 虛擬化管理的人會去找virDomainGetGraphics這樣的函數(shù)我提醒一句libvirt 沒有這個公開 API。正確做法是用virDomainGetXMLDesc把整個 XML 拉回來再解析graphics節(jié)點// graphics_parser.cpp #include libvirt/libvirt.h #include QDomDocument QString getGraphicsPort(virDomainPtr domain) { // 取帶安全字段的完整 XML密碼會被解出來 char* xml virDomainGetXMLDesc(domain, VIR_DOMAIN_XML_SECURE); if (xml nullptr) return QString(); QDomDocument doc; doc.setContent(QString::fromUtf8(xml)); free(xml); const QDomNodeList graphicsList doc.elementsByTagName(QStringLiteral(graphics)); for (int i 0; i graphicsList.size(); i) { QDomElement g graphicsList.item(i).toElement(); if (g.attribute(type) spice || g.attribute(type) vnc) { QString port g.attribute(port); QString pass g.attribute(passwd); // 這里可以發(fā)給顯示頁面去連 return port; } } return QString(); }VIR_DOMAIN_XML_SECURE這個 flag 必須帶否則graphics節(jié)點里的passwd屬性會被省略成空。解析時用 DOM 而不是正則是因為 XML 屬性順序可能變正則容易漏掉多graphics節(jié)點的情況。多顯示器虛擬機通常有多個graphics標(biāo)簽?zāi)阈枰A羧慷皇侵蝗〉谝粋€。4.3 在 Qt 窗口內(nèi)呈現(xiàn)訪客畫面三種方案第一種方案是調(diào)用remote-viewer外部進程把它的窗口嵌入到 Qt 主界面。做法是用 Linux 窗口系統(tǒng)提供的嵌入接口把子進程的winId塞進QWidget::createWindowContainer。好處是實現(xiàn)簡單不用管 SPICE 協(xié)議的細(xì)節(jié)壞處是跨平臺性差macOS 或 Windows 上表現(xiàn)不一致而且remote-viewer必須預(yù)先安裝。第二種方案是使用 spice-gtk 的 Qt 適配層核心類是SpiceSession和SpiceDisplay。它可以在 Qt 里直接渲染 SPICE 畫面支持鼠標(biāo)、鍵盤、剪貼板轉(zhuǎn)發(fā)。代價是你得把整個 spice-gtk 庫鏈進項目對資源要求較高。第三種方案是 VNC 的幀緩沖開源庫比如 libvncclient你在 Qt 里用一個QWidget的子類接收幀緩沖數(shù)據(jù)然后轉(zhuǎn)成QImage渲染。這個方案不依賴外部程序但視頻編碼和解碼全得自己處理性能瓶頸明顯。我的評價是如果只是做管理工具第一種最省事如果要做完整桌面體驗第二種子碼流最穩(wěn)第三種只適合臨時測試。4.4 圖形參數(shù)調(diào)整autoport 與端口沖突autoportyes的意思是讓 libvirt 自動分配一個可用端口但自動分配意味著你不知道具體端口必須在域啟動后再去讀 XML才能拿到真實端口號。這在拼接spice://127.0.0.1:5900連接地址時是必須的。如果你指定固定端口port5900那么多個虛擬機不能同時設(shè)置相同端口否則后啟動的域會失敗。我在資源里看到它封裝了一個“等待端口就緒”的狀態(tài)機域啟動后每 500 毫秒輪詢一次 XML 里的graphics端口最多等 30 秒超過就報錯。這個設(shè)計很實用因為 QEMU 從創(chuàng)建到監(jiān)聽 socket 有延遲立即讀端口會拿到空值。5. 避坑排查連接、權(quán)限、顯示三類問題的根因清單這一章是我把常見問題整理成清單的部分。所有條目都遵循“現(xiàn)象 → 原因 → 解決”的順序直接對應(yīng) qt-virt-manager 里最容易踩的五個坑。5.1 連接報錯“認(rèn)證失敗”但用戶名密碼明明是對的現(xiàn)象使用qemussh://userhost/system連接遠(yuǎn)程宿主機程序提示authentication failed但在終端里用同樣的賬號執(zhí)行virsh list --all卻正常。原因SSH 密鑰與 libvirt 認(rèn)證回調(diào)的沖突。libvirt 通過 ssh 管道連接遠(yuǎn)端后如果遠(yuǎn)端 libvirtd 要求 SASL它會繼續(xù)走virConnectAuth回調(diào)但本機 SSH 層已經(jīng)用了密鑰登錄沒有可交互輸入的 TTYSASL 拿不到額外憑據(jù)。解決改用已經(jīng)配置好的 SSH 密鑰組合讓整個鏈路不需要交互。在本地執(zhí)行ssh-keygen并把公鑰加到遠(yuǎn)端然后確認(rèn)遠(yuǎn)端/etc/libvirtd/libvirtd.conf里auth_tcp設(shè)為none或者與 ssh 認(rèn)證不沖突。如果你堅持要 SASL就要確保本機有可用的 keychain 代理而不是依賴回調(diào)輸密碼。5.2 啟動域提示權(quán)限不足但用戶已經(jīng)加入了 libvirt 組現(xiàn)象普通用戶在 qt-virt-manager 里能列出域但啟動時報internal error: process exited或者cannot access /var/lib/libvirt/images/xxx.qcow2。原因用戶雖然加入了libvirt組但磁盤鏡像文件的權(quán)限是 600屬于 root。libvirtd 啟動 QEMU 進程時以 root 身份運行所以 root 自己能讀寫但用戶會話對文件的訪問仍然被系統(tǒng)權(quán)限攔截。libvirt組的權(quán)限只管 libvirt 的守護進程控制不管是宿主機文件系統(tǒng)權(quán)限。解決給鏡像文件設(shè)置合理的 ACL例如把/var/lib/libvirt/images下所有 qcow2 文件的組改成libvirt并給組讀寫權(quán)限。另外一個隱蔽點AppArmor 對 QEMU 的訪問控制可能未放行特定路徑在 Ubuntu 上需要在/etc/apparmor.d/usr.sbin.libvirtd里添加路徑規(guī)則并 reload否則啟動會直接被拒絕。5.3 SPICE 黑屏或連接后一直轉(zhuǎn)圈現(xiàn)象虛擬機域啟動正常remote-viewer 連接 SPICE 地址看到黑屏或無限轉(zhuǎn)圈但 VNC 連接同一個域卻正常。原因SPICE 協(xié)議在 TLS 與非 TLS 端口之間切換時客戶端用了錯誤的連接前綴。如果你在 libvirt 里沒有配置 TLS只監(jiān)聽了普通端口客戶端卻用spice://默認(rèn)走 TLS就會一直握手失敗。另一個原因是 spice-guest-tools 沒裝guest 內(nèi)沒有 SPICE 的顯卡驅(qū)動導(dǎo)致顯示輸出沒有推送到 SPICE 通道。解決在 Qt 代碼里拼接地址時顯式使用spice://127.0.0.1:端口同時確認(rèn) libvirt 的graphics節(jié)點里沒有開啟tlsPort。如果 guest 是 Windows先安裝 spice-guest-tools如果是 Linux確認(rèn) spice-vdagent 服務(wù)運行中。我還會用virsh domdisplay去對照實際生成的地址排除端口讀錯的可能。5.4 列表里能看到域但雙擊啟動無響應(yīng)現(xiàn)象qt-virt-manager 的域列表能正確顯示所有虛擬機狀態(tài)顏色也正常但雙擊啟動一個 shutdown 狀態(tài)的域時UI 沒有任何反饋后臺日志也沒有 libvirt 錯誤。原因極可能是同時連接了多個 libvirt 驅(qū)動列表展示的數(shù)據(jù)來自qemu:///system而雙擊后的啟動操作卻因為代碼內(nèi)部 URI 寫死或變量未更新被發(fā)送到另一個連接會話。更隱蔽的是界面上顯示的域是持久域但啟動操作調(diào)用的是virDomainCreate而不是virDomainCreateXML而當(dāng)前域?qū)ο笫菑牧斜砭彺胬锬玫膶ο筮^期。解決在程序初始化時只維護一個全局的連接狀態(tài)值。域列表的每個條目都必須保存它所屬的virConnectPtr指針雙擊時直接使用同一條連接。還要在啟動前調(diào)用virDomainGetState刷新一次狀態(tài)避免操作一個大緩存里已經(jīng)失效的域?qū)ο?。這個坑在虛擬化面板里非常常見尤其是實現(xiàn)了跨后端列表合并之后。5.5 狀態(tài)輪詢把界面卡死甚至是假死現(xiàn)象虛擬機數(shù)量超過 5 個時界面開始出現(xiàn)明顯卡頓數(shù)量達到 20 個時按鈕點擊后要等好幾秒才有反應(yīng)。原因在住線程里做了同步輪詢。virDomainGetInfo對每個域都要發(fā)一次 libvirt 調(diào)用如果虛擬機處于暫?;蜣D(zhuǎn)換狀態(tài)這個調(diào)用可能阻塞幾百毫秒。Qt 主線程一旦阻塞整個事件循環(huán)停擺表現(xiàn)為窗口無響應(yīng)。解決把所有輪詢邏輯移進QThreadPool界面里只接收信號更新。輪詢間隔至少保持 2 秒不要低于 1 秒否則 QEMU 和 libvirt 內(nèi)部的鎖競爭會拖慢原本正常的操作。我在資源里看到它還實現(xiàn)了“輪詢暫停機制”當(dāng)用戶正在執(zhí)行快照或遷移操作時自動拉長輪詢間隔減少干擾。6. 進階技巧把域列表接進 Qt 模型層讓界面自己刷新做到這一步你已經(jīng)能把連接、域操作、顯示輸出跑通。最后一個值得長期沿用的技巧是用QAbstractListModel管理域列表而不是在 QWidget 里直接 push 數(shù)據(jù)。這套模式的收益要等虛擬機數(shù)量變大、狀態(tài)頻繁變化時才能體會到模型驅(qū)動視圖數(shù)據(jù)變化自動通知界面代碼不用到處手動 update。一個簡易的模型頭文件長這樣// domain_list_model.h #include QAbstractListModel #include QVector struct DomainItem { virDomainPtr dom; QString name; int state; // libvirt 的狀態(tài)碼 }; class DomainListModel : public QAbstractListModel { Q_OBJECT public: enum Role { DomainNameRole Qt::UserRole 1, StateRole, DomainPtrRole }; int rowCount(const QModelIndex parent QModelIndex()) const override; QVariant data(const QModelIndex index, int role) const override; QHashint, QByteArray roleNames() const override; private: QVectorDomainItem m_items; };核心思想是重寫data()方法讓角色返回對應(yīng)字段。當(dāng)輪詢線程拿到新狀態(tài)時不要整個模型重置只更新對應(yīng)行并發(fā)送dataChanged信號。這樣列表視圖只重繪變化的行刷新成本大幅降低。我在實現(xiàn)時會額外加一個state到顏色的映射比如 1running用綠色5shutdown用灰色讓用戶一眼看出運行狀態(tài)。從那以后我每次把 qt-virt-manager 部署到新環(huán)境都強制走一遍流程先驗證virsh -c qemu:///system list --all能看到正常列表再啟動一個測試域再用 qt-virt-manager 連接并執(zhí)行一次啟動和關(guān)閉最后用virsh domstate反向校驗界面顯示和實際狀態(tài)一致。這套流程給過我很多次后悔藥也讓我少背了很多個“面板顯示正常但虛擬機起不來”的黑鍋。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久操网无码在线| 国产黄色在线播放观看| 中文字幕五月婷婷免费| 97久久超碰| 亚洲黄色网址| 98人妻精品一区二区色欲| 无码国产精品午夜不卡(| 免费视频a级毛片免费视频| 色五月综合| 208天天久久九九九| 美女91AV| 极品色社| 久久久久9999精品九九九| 欧美一级在线观看成人| 国产原创精品| 97干97色| www鬼畜国产男人的天堂| 91狠狠综合久久| 久久久久九九九| 上床不卡网站| 91搞逼视频| 狠狠五月天| 久草精品国产蜜臀| 麻豆精品一区二区三区四区免费观看| 精品国产一区二区三区av在线资源| 亚洲se电影| 深夜激情无码| 友优传媒精品在线一区二区| 91N欧美| 久草看看看| 日日夜夜狠狠| 精品一区99999| 插欧洲美女欧美精品| 天天内射| 任你艹| 91欧美色| 亚洲综合性感在线| 看日韩操逼| 超碰97亚洲区| 丁香五月AV| 日韩欧美传媒一区国产| 国产日韩精品一区二区三区| 欧美日韩亚洲天堂| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 99操| 超碰在线人妻中文字幕| 色婷婷六月| 久久东京热久久| 黄页18禁| 一类av片在线看| 97精选久久| 婷婷视频在线免费观看| 久久精品男人的天堂| 91呆哥人妻| 60秒免费视频| 99色| 蜜乳AV一区二区三区四| 美女啊啊啊啊啊啊| 免费亚洲国产精品久久一区| 97精品国产97久久久久久免费| 国产又黄又粗的视频| 欧美 传媒 麻豆 日韩 偷拍| 日韩激情中文字幕有码| 99草精| 99re国产中文字幕| 男人高清无码一区二区| 精品无码一区二区三区色欲| 黄站在线免费观看| 精品少妇后入一区二区三区四区人妻巨乳 | 日韩午夜国产| 超碰在线人妻中文字幕| 欧美综合1性辶| 天天弄欧美| 大伊香蕉在线视频免费| 黄色操人| 国产精品视频播放| 亚洲日韩肥臀视频在线观看| 熟妇色99| 久久久久久久久久久人妻| 无码天堂| 人妻人人澡人人爽人人| 欧美毛片在线网| 国产亚洲精品农村妇女| 综合夜夜| 熟妇人妻精品一区二区| 97草草| 乱欲一区二区| 99在线精品视频| 加勒比五月天| 91色五月俺来也| 嫖老熟女A片一二三区| 午夜在线播放| 600国产精品视频| 91天堂视频| 2010男人的天堂| 3p国产色噜噜一区| 在线A日本| 九九九色| 久久久久久9| 国产自偷| 中文字幕熟女人妻丝袜丝| 免费看污网址| 男生女生啊啊啊啊| 奸色色 男人天堂 天天射| 亚欧性爱在线无码| 亚洲一区二区三区欧美日韩| 国产视频不卡在线观看| 亚洲综合中文字幕有码| 欧美日韩精品一区二区三区高清| 噜噜噜在线视频| 欧美不在线| www欧美91| 99国产精品自在自在| 青青11操操操操操操操操| 久精品无码av一区二免费国产在线观看 | 超碰午夜| 日熟女| 欧美综合网| 精品传媒在线一区| 欧美人黑A片无码免视费| 9999九九九久久久| 久欲AV| 北野未奈加勒比av| 天堂av最新电影网| aV中文麻| 久久精品国产99精品亚洲蜜...| 中文字幕高清精品一区| 亚洲精品一区二区精品| 麻花豆传媒剧国产MV出差| 中文字幕在线观看永久| 中文字幕精品一区二区精| 国产日韩在线播放av| 久久精品毛片免费不卡| 欧美成人AⅤ大片在线观看| 怡红院久久老司机| 青娱乐休闲视频在线观看| 久久久久国产精品久久久| 少妇综合| 天天躁日日躁xxxxx| 综合操逼| 色综合美国| 情色日播放AV| 天天影视综合网欧美精品| 国产日本熟女顶级一区二区三区视频 | 超碰97久久国| 精品一区二区三区蜜桃| 中国AAAAAA黄色片| 亚洲乱伦图片视频| 性吧在线视频| 精品视频在线观看| 人人操人人操人人人操| 亚洲 日本 国产 综合| 日韩操逼HD| 福利在线观看一区二区| 青草视频在线看看看看看看看看看| oumeisetu综合| 九一屌逼| www久久精品| 亚洲不雅视频1区二区| 国产精品久久久久久久久久久久久久| 欧美18 在线观看| 日本二三四区| 激情无码日韩| 韩国一级婬片A片AAAAA| 超碰国产情侣自拍网| 九九九九97| 香蕉欧美| 欧美一级色| 97超级欧美| 熟妇人妻丰满久久久久久久无码| 亚洲色欲天天天堂色欲网女| 91欧美| 青青草在线视频人人想人人上 | 国产精品毛片| 黄片免费日韩| 丁香六月婷婷久久综合| 国产和美国毛片| 在线视频亚洲无码| 日韩女模中文造逼| 91天堂丝袜美腿| 一级日本牲交大片好爽在线看| 色综合av男人天堂| 有码人妻系列| 情趣丝袜无码操逼视频| 99色热| 狠狠亚洲| 日本熟女不卡视频| 久久久久久久久久久久黄色| 欧美在线第五页| 国产真实子伦对白| 9久超碰| 天天影视综合色| 国产成人精品必看| 精品免费一区二区三区在线亚洲人成 | 老熟女熟妇| 大学生美女口爆| 婷婷五月天影院| 中文字幕日韩精品一区二区三区| WWW4虎| 欧美美女自慰一区二区三区| 91一起操| 欧洲站一级二级三级h| 国产乱伦亚洲| 久插不卡| 国产 日韩,欧美 自拍| 99综合| 婷婷九月丁香| 色婷婷基地| 超碰97综合网| 性爱av在线免费观看| 久久久精品一区二区| 男生通女生屁股| 操逼逼一区视频| 日欧美色| 亚洲偷拍自拍在线视频| 中文字幕-区二区三区四区视频中国| 欧美天天综合网| 日韩人妻少妇中文字幕| 人人操人人色网| 色蜜AV| 干超碰碰熟女| 国产欧美一区激情交| 韩国嫰模上门援交视频| 婷婷亚洲五月***久久| 97看操| 欧美日韩操逼动图| 色香综合天天影视综合| 操逼逼无码| 刺激性视频黄页| 在线播放免费av福利片| 国产熟码AV| 亚洲欧美大香蕉| 国产白丝精品在线观看| 色 婷97| av网站在线观看了| 中出20p| 欧美99| 色亚洲欧美| 久久伊人五月天| 夜夜爽夜夜操| 操死我了嗯嗯嗯| 人人爱人人操人人性| 97热视频在线观看| 激情五月综合网| 一起草高清无码| 亚洲天堂 视频你懂的| 欧美日韩人妻精品一区二区三区| 九九香蕉网| 亚洲无码国产探花在线观看| 国内黄色精品| 成人激情无码在线视频| 69一区二区三区| 99久久com免费视频′| 一区二区三区亚洲| 夜夜骑日日| 伊人青青一区成人视频在线观看区| 久久久成人免费av电影| 超碰公开久久网| 97操B| 狠狠五月天| 啪啪视频亚洲第一| 超碰97 线线 在现| 国产日产欧产美韩系列麻豆免费| 国产欧美精品日韩区二区麻豆天美| 九九精品99| 大乔未久88一区| 丁香激情五月天| 中文字幕一区二区免费在线| www.色婷婷| 久久伊人亚洲AV无码网站| 97免费视频在线观看视频| 国产玖玖| 亚洲人妻一区二区三区| 91成人在线免费视频| 啪啪视频免费在线观看| 日日躁狠狠躁天天躁精品| 高树玛利亚无码流出| 久久99视频| 精品九九| 超碰97COm中文| 蜜桃精品视频一区| 日本 免费 一区二区三区 久久香蕉| 国产亚洲禁久一区二区| 日韩成人无码| 亚洲av成人精品一区| 情色五月天就去干| 欧美肥臀在线| 国产盗摄美女如厕大神作品在线观看| 亚洲中文字幕在现观看| 九热中文字幕| 国产97免费视频| 国产suv精品一区二六| 成人熟女区| 97干日韩| 三级片大波波| 国产a级精品| 国产 日韩 欧美一区| 日韩精品一二三| 男人的天堂三级| 五月开心久久AV官网| 婷婷日韩一区二区三区中文字幕在线| 成人性爱视频在线看| 亚洲少妇视频| 91欧美网| 激情内射| 青青草一区二区高清无码视频| 亚洲女毛多水多21P| 国产日韩精品suv| 农村女一级毛卡片| 亚洲国产精品无码AV久久| 少妇熟女一区二区三区| 欧美97超碰| 97资源亚洲| 欧美一区二区三区黄色影视| 精品久久9| 骚逼自拍99| 国产精品久久久久久久黄无码| 天天性射网| 大香蕉伊人在线成人AV在线观看| 狼人综合婷婷激情四射 | 亚洲黄色网址| 九久久精品| 亚洲第91页 | 91啦人妻| 亚洲国产一区二区入口| 五月天色色网站| 婷婷五月天福利| 激情综合五月婷婷| 久久偷拍人| 无码久| 久久欧洲| 毛片99-全集电影手机免费观看完整-B029AV | 国产精品天堂| 日本中文字幕不卡视频| 色爱三区| 404操逼福利视频| 国产绿奴视频在线观看| 成人五级久久| 亚洲精品人妻吞精av| 欧美性爱精品一区二区| 久久国色天香香蕉| 久久爱超碰网| 久久久久久十| 欧美精品日韩久久久九| 婷婷午夜| 狠操91,com| 欧美激情高清性猛交| 亚洲高清自拍| 日本欧美亚洲高清在线看| 六月色婷婷| 东京成人一区| 91熟女丨91老女人| 操逼逼中文字幕| 五月天婷婷欧美三区| 国模不卡一本二本三电影| 九九九久| 一区二区三区免费视频入口| 抽插无码高清一区| 日韩资源网| 国产乱伦视频污| 韩国手机不卡无码三级视频| 日本色婷婷| 欧美猛交黑寡妇中文字幕| 一区二区三区一亚洲中文字幕、综合区灬| 天天夜躁日日躁狠狠2002| 手机在线观看不卡无码av| 啊啊啊啊啊在线观看网址| 大香蕉欧美伊| 超碰九7| 强奸乱伦AV网址| 日本十八禁免费看污网站| 国产免a费看黄片在线| 大香蕉在线视频15| 亚洲精品乱码久久久久久蜜桃麻豆| 91亚洲图片| A 天堂| 天天欧美欧美亚洲网| 夜夜骑操视频| 国产午夜精品理论片一二三区区| 99精彩视频| 日韩精品色呦呦| 五月婷婷六月丁香| 天天色综合影视网| 人妻在线视频| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 天天看特黄的免费网站| 国产91亚洲精品一区二区三区| 九九Av| 91精品婷婷国产综合久久| 一级片在线观看高清无码| 欧美亚洲激情小说| 91精品国产91综合久久蜜臀| 亚洲精品国产精品乱码不99| 99热国产精品| 欧美视频一区二区在线| 日韩天堂av电影在线观看| 亚洲激情视频| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 香蕉黄色一级视频| 国产精品色哟哟| 国产一区二区三区高清视频| 91亚州日韩高清| 精品无人区麻豆乱码1区2区图片| 人妻熟女av国产网站| 欧美色天堂网在线视频| 91丝袜在线观看| 久久亚洲精品成人av| 欧美一品道| 亚洲中文一区二区三区视频| 黑人精品欧美一区二区蜜桃| 亚洲乱熟女一区二区三区大香蕉| 日本蜜桃| 2020久久免费视频| 久悠悠av| 日本色色色视频| 校园春色家庭伦理欧美激情| 免费作爱一级视频| 久久日韩肥臀| 欧美视频在线视频免费va| 狠狠97| 99精品久久久久久久婷婷蜜桃| 香蕉免费一区二区三区不读| 日本一本道A级黄色毛片试看60分钟| 黄色在线网站| 国内毛片国产欧美拍| 另类图片五月天| 久久超碰av在线| 精品人妻伦一区二区三区久久| 很狠操| 色性荡荡荡荡视频| 色97综合中文字幕| 久久性爱免费送| 欧美综合中文| 夜夜操av亚洲一区二区| 欧美精品三级黄片| 日本天堂在线播放| 中文字幕日本久久| 久久综合精品一区二区三区| 一类无码操逼视频| 精品国产a∨一区天美传媒| 狠狠干综合| 日韩视频中文字幕| 蜜臀久久在线视频| 一区二区三区四区免费视频| 欧美色女人| 大香蕉综合在线| 五月婷婷激情网| 99久久久久久亚洲精品不卡| 少妇高潮九九九九九九九| 97精品一二区| 不卡av在线中文字幕| 老女人碰碰在线碰碰视频| 色婷婷基地| 久久久久久九| 日韩9999| 人妻AV 中文字幕的| av一区二区三区四区| 日韩一区二区熟女| 欧美色五月| 天天做日日做| 亚洲牲交| JuliaAnnXXX888| 日韩中文字幕av在线播放| 99日韩| 精品无码久久久久久国产浪潮| 床戏久久久av一区二区麻豆| 人妻天堂综合网| 老司机老司机午夜影院| 人妻精品视频一区二区三区 | 草草草视频| 玖玖爱伊人玖玖爱| 亚洲欧洲小说图片视频| 婷婷五月综合激情| 91色婷婷综合久久中文字幕二区| 欧美一级特黄淫片在线观看| 亚洲国产97在线精品一区| 伦在线97| 激情图片亚洲色图| 欧美亚洲性爱一区二区| 亚洲少妇综合在线播放| 日韩欧美成人午夜福利| 亚洲av噜噜噜噜噜噜| 91精品人妻| 亚洲图片欧美另类综合免费视频大大香| 蜜乳av首页| 加勒比久久综合网高清| 综合欧美亚洲| 国产精品自拍视频| 免费观看一区| 大香蕉中文| 一区二区三区四区理论片| 色原狠狠天天天| 日韩人人精品| 亚川综合视频| 好湿好紧视频| 天天天干977| 99热精品青草在线| 一区中文字幕二区日韩| 精品国产网站| 屌妞视频久久久久久久久久久久| 国产夜夜操| 丁香五月天婷婷姐| 日日干夜夜操视频h| 99青草| 91女网站| surenchaopeng| av婷婷色网| 美女淫穴| 和协影院中文字幕三区| 99热日| 久久成人精品| 清纯唯美综合| 97中文字幕九区| 夜夜 中文视频rt| 色综合1991| 97精品在线| 精品白丝一区| 蜜臀99久久| 亚洲精品蜜桃久久久| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 免费一级性爱久久| 国产第25页在线观看| 欧美一级做a爰片免费视频| 老司机射| 牛牛AV人人夜夜澡人人爽| 国产极品精品美女视频| 亚洲Av无码成人精品国产| 人人妻人射| 婷婷丁香六月| 熟女自慰久久久| 欧美性天天影院| 天天操天天干美女网址导航| 天天肏夜夜肏| 中国农村熟妇毛片视频| 超碰成人最新最好看| 99综合网| AV99热18这里只有精品| 久久久啊啊啊| 无码外流操逼视频| 91GD.COM| 国产熟女| 骚女天天综合网| 亚洲情色综合| 国产区性爱在线视频秋霞豆| 丝袜熟女2P| 1区2区3区中文字幕日韩| 韩国嫰模上门援交视频| 日韩性爱小视频| 国产又大又硬又长又粗| 桃色六月天| 国产97/欧美| 你懂的在线观看区国产| www.婷婷五月天| 素人播放一区| 国内一区二区三区| 国内毛片无遮挡国产| 久久久久9999| 亚洲图片在线| 五月天婷婷在线看| 男人天堂久久精品| 动漫区日韩区欧美区| 亚洲激情在线| 欧美一区二区三区四区综合| 欧美图片偷拍| 亚洲 日本 不卡| 久久黄色视频一区二区三区| 午夜呻吟欧美| 欧美天天弄| 日本日逼视频网| 久9久精品视频| 97在线视频网站| 日韩精品在线观看网站| 熟女欧美日韩综合婷婷| 男女啪啪网站免费视频| 国产亚洲一黄| av天堂加勒比| 中文字幕性感少妇av| 久久久久网站-538在线视频-欧美永久乱码 | 久久人妻丝袜一区二区三| 91无摭挡| 99re免费视频精品全部| 2001天天操| 欧美精品黑人猛交高潮| 日本污ww视频网站| 91亚洲最新在线| 在线强奷到舒服的无码视频| 久久婷婷欧美| av天堂天堂av日韩| 久草热制服丝袜在线观看| 欧美激情视频一区二区| 天天干天天插| 欧美97色| 高凊专区人人操| 中文字幕黄色一起草| 国产18精品亚洲精品| 蜜桃臀AV在线| 99久久久无码国产精品性男| 日韩无码AB| 岛国视频一二三区| 欧美性综合| 近亲乱伦一区二区| 精品人妻视频一区二区在线播放 | 99爱爱| 天天干夜夜一操| 少妇精品久久久八区九区| 破苞ⅩXXX性无码动漫无码| 91人妻做a观看视频| 国产妇女精品视频青青草| 欧美国产精品| 打av高清| 草草网站影院白丝内射| nuu12国产麻豆精品| 九九黄色视频在线观看| 先锋女优在线观看视频| 九九热男人天堂| 欧美激情性久久久久久| 少妇99| 九九99精品视频在线观看| JuliaAnn丝袜熟女系列| 亚洲国产剧情少妇激情| 人妻精品免费一二三区| 欧美 综合 亚洲| 性爱久久| 老司机深夜18禁污污网站| 日本亚欧爱爱| 尤物av网站| 强奸乱伦大香蕉网| 国产精品人妻免费精品| 中文有码第五页| 777琪琪午夜免费A片| 天天欧美色| 日本1区2区不卡视频| 午夜精品久久久99热蜜桃的功能特点| 国产精点久久久成人| 99re黄| 超碰99热中文字幕| 中文字幕一区二区在线日韩精品| 91久久国产精品| 色婷婷综合久久中文字幕雪峰| 鸡巴插逼视频| 蜜臀久久99精品久久久电影| 97碰碰日本乱偷人妻中文的| 久久久爆乳翘臀一线天伦理视频| 18啪啪手机免费性爱| 国产精品农村妇女精品| 91成人在线| 久久五月视频| 国产欧美日韩一区二区三区| 久久久久99精品成人片蜜臀| 欧美激情久| 电影69乱码96| 操比国产| 三级激情网站| 男人的天堂在线有码| 欧美亚洲韩国视频十五区| 欧洲Au麻豆| 伊人热综合| 抽插一区二区视频| 97爱b| 欧美日韩岛国大片在线观看| www.亚洲黄色| 后入式免费视频| 加勒比AV网| 久久一二三四五六七八九区区区| 性欧美| 懂色av色欲av蜜臀av| 亚洲欧美日韩不卡人妻| 欧美最大综合网| 超碰97玖玖爱| 亚洲最大黄网| 伊人AAA| 9999免费精彩视频| 人人摸人人添人人操| 四虎国产精品永久在线囯在线| 亚洲色图片区| 传媒在线观看一区二区三区| 蜜汁欧美| 无码九九九九| www.超碰在线| 性夜影院爽黄A爽免费动漫| 校园春色五月天| 熟妇人妻精品一区二区| 91视频精品| 一级性爱aaaa| 精品无码一区二区三区色欲| 激情综合网激情综合| 操逼网站网站| 青娱乐福利99| 亚洲精品尤物yw在线影院| 岛国片在线视频网站| 久久久性| 人人操肉肉| 人人干人人搞人人摸| 成人性爱美曰韩| av婷婷色婷婷色六月| 久9热| 久操热| 97干日韩| 日本999精品| 亚洲偷拍欧美激情| 一二三四区电影| 亚洲丝袜少妇在线| 久操精品| 18禁精品网站在线看| 亚洲国产成人精品无码专区| 黄片直播三级黄片两女一男| 99在线免费视频| 欧美中文字幕男人天堂久久精品| 中文字幕视频2区| 伊人991| 欧美丝袜91| 大色综合| 99精品视频在线观看免费| 亚洲 欧美 手机在线观看| 超碰人人超在线观看| 精品久久久无码| 伊人精品视频| 91欧美少妇| 不卡av免费在线网址| 亚洲天天做日日做天天谢日日 | AV天堂男人的天堂| 亚洲精品国产熟女久久久| 日本男人天堂| 一级做a爰片久久毛片图片| 国产亚洲日本精品在线| 国产女上位好爽在线| 老汉网| 久夜操| 欧美日韩日产免费网站看| 亚洲中文字母在线播放| 旡码电影特区| 一本色道久久综合亚洲二区三区| 久久精品国产亚洲av水密被窝| 国产美女销魂在线观看不卡| 亚洲人妻av| 上床不卡网站| 精品黄色电影| 天天色播亚洲综合网站| 精品久久久久瑟瑟| 人妻夜爽夜夜爽| 欧美精品成人在线播放| 91九色网| 日韩不卡一二三四| 日韩熟女操逼| 入口操逼网站| 亚洲自拍欧美国产首页网曝 | 超碰在线香蕉| 色狠狠综合| 久久久久9999妇女| 欧美亚洲激情| 黄网在线播放| 99精品人人爽| 国产午夜福利专区综合| 99热综合| 少妇人妻在线| 日韩亚洲国产视频| 亚洲少妇在线影音| 久久久久久9| 狠狠干综合| 蜜乳av一区二区三区四区不卡| 国产v亚洲v日韩v欧美v片另类| 日韩啪啪网| 久久久久久无码人妻中文字幕| 日本成人A片网站| 中文字幕av色| 爽 好舒服 无码刺激久久| 国产精品 午夜福利| 69一区二区三区| 天天干天天插| 熟妇人妻精品一区二区| 92人人操人人| …中文字幕亚洲乱,97人妻无码费视… | 91色图片| WWW.操逼.COM| 亚洲、日韩、综合、另类| 韩国三级色呦呦| 五月丁香激情综合网| 欧日韩一二三f区| 亚洲欧美中文日韩视频中国语| 男人把坤坤插入女人的下体| 中文日本免费高清| 麻豆伊人网| 综合网天天| 国产欧美第五页| 九九九久久久| 蜜臀精品1区2区| 超碰九区| 亚洲97在线观看| 国产成人一级av88| 超碰午夜| av婷婷色婷婷色六月| 乱子伦一区二区三区国产精品| av最新免费中文字幕| 1024午夜激情男人的天堂| 99re国产精品视频| 日韩 欧美 国产 麻豆| 中文字幕一区二区韩| 欧洲大香蕉| 91人妻Pr| 日韩一二三区| 亚洲天堂第一页| 丁香九月 婷婷| 日韩八十路老熟女| 国产版a级片直播在线| 高清无码学生妹高潮| 99在线精品观看99| 综合久久97| 久久鲁夜| 精品亚洲国产成人AV制服丝袜| 久久女女| 天天日天天色| 青草综合| 干B| 玖玖爱免费观看视频| 超碰九九| 熟妇视频一区二区三区在线观看| 国产高清吃奶免费视频网站| 亚州Av天美传媒| 日韩熟妇二区| 午夜超爽| 色九九久九九| 欧美日日夜夜| 在线观看黄色电话| 中文字幕国产在线天堂| 白 大 人妻 区 在线| 99久久综合网| 岛国福利在线精品播放| 激情婷婷丁香| 97爱免费插| 日韩欧美午夜视频在线| 98久久| 国产精品丝袜久久亚洲不卡| av在线资源| 国产又黄又粗的视频| 九九九久| 欧美黑人与女人91~| 女人被添高潮免费视频| 免费家庭乱伦视频| 国产久9| 欧美综合制服在线| 亚州伊人色综台| 看大黄色大片原件| 久久久人妻| 941超碰| 玖玖爱综合| 国产精品99久久久www| 国内偷自视频区视频综合| 国产精品成人午夜福利| 日韩精品9999| 欧美大码在线视频| 久久这里只精品99re66图| 免费中文综合精品| 97国产精品一区| 老熟女中文字幕高清| 亚洲熟女综合| 成人性爱高清视频免费看| 国产毛片片精品天天看视频| 日日躁天天躁狠狠躁| 美女毛片999| 啊啊啊好爽快点啊啊啊嗯嗯| 亚洲av影院在线观看| 欧美综合网A| 久久丁香五月婷婷| 校园春色五月天| 丝袜美腿91| 91精品人妻啪啪间| 国产av青草| 啊啊啊啊啊啊啊国| 五月天婷婷激情| 日本熟妇人妻中出视频| 亚洲另类小说卡通动漫| 明星性猛交ⅹxxx乱大交| 夫妻日逼| 亚州五月| 99这里只有精品| 亚洲在钱| 校园春色家庭伦理欧美激情| 99啪啪| 97硬碰| 另类亚洲图色| 国产人妻精品久久久一区二区三区 | 欧美影音在线| 99蜜桃臀久久久欧美精品网站| 日韩av熟女一区二区三区成人| 色五月婷婷在线| 99热伊人| 长长久久免费视频| 久久婷婷视频| 亚洲色五月| 爽爽淫人网| 嗯嗯啊啊视频在线看| 成人片在线播放| 91狠狠色丁香婷婷综合久久| 成人av免费观看| 综合色久| 婷婷色在线| 2020中文字幕| 四月丁香婷婷| 国产熟女一区二区丰满| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 欧亚久久偷拍视频| 欧美一区二区成人一卡| 人妻激情在线视频| 毛片麻豆91糖心精品毛情片| 亚洲中亚日激情视频| 色婷婷日韩精品一区二区三区| 一区二区三区男人的天堂| 中文字幕av片| 男人的天堂VA| 插入逼91| 福利社区午夜一区二区| 国产探花精品在线| 久久久久久AⅤ无码免费肉站| 99热最新| 尻女朋友一夜| 免费9 1久久| 97碰碰日本乱偷人妻中文的| 台湾佬中文娱乐自偷自拍| 天天天肏屄欧美| 97丝袜亚洲在线播放| 人人操人人精品影片| 97免费视频在线| 日韩兔费看黄片| 91深夜夜| 综合色久| 69精品人人人人| 18禁久极品美女久久哦哟呀!| 亚春色色| 精品无码一区二区三区| 韩国成人精品久久久免费看| 亚洲成人一区二区精品| 亚洲欧美精品91| 性老妇一区二区三区| 精品国产人成在线| 欧美黄色大香蕉一区二区| 性色一线| 中出后入| 2017亚洲天堂| 免费一级精品啪啪视频| 欧美激情综合| 欧美少妇性乱| 偷窥自拍亚洲| 亚洲欧美国产va在线播放频| 丁香六月激情| 色婷婷成人| 大香蕉在线86| 超碰97.com| 亚洲天天综合| 国产熟女免费观看久久| 中文字幕在线观看永久| 亚洲成人在线播放| 91老熟女老女人国产老太| 亚洲欧洲自拍| 顶级丝袜熟女一区二区三区| 人妻加勒比东京热| 嫩草91| AV一区观看| 久久精品欧美一区蜜桃| 熟妇国产免费一区| 成人性爱免费播放| 在线99热| 久久久久久久久国产| 人人操人人色网| 久久曰曰| 97欧美色综合| 无码外流操逼视频| 亚洲天堂区| …中文字幕亚洲乱,97人妻无码费视… | 99re这里只有精品中心播放| 久久人妻一区二区三区高清| 欧美自拍偷拍综合图片| 2020中文字幕| 青草伊人网| 国产日韩欧美亚洲精品95| 色九月综合| 草草草视频| 女人高潮大叫一级毛片| 天天操天天看| 国产一级内射无挡观看| 开心五月婷婷激情| 久久熟女嫩草成人片免费| 久久夜黄色无码A级大片| 欧美一二在线| 在线播放成人高清免费视频| 啊啊啊啊一区| 欧美性爱一区二区三区| 久操不卡视频| 四虎免费视频| 久久久久亚洲?V片无码V| 久久99手机免费视频| 欧美巨大性舒爽顶到了| 青青草在线成人视频| 亚洲一二三四区| 天天干天天插| 不卡二三区人妻少妇| 婷婷伊人网| 婷婷人妻激情| www.91理论| 综合九九| 91天天日| 成人怡红院| 青青草日本无码| 国产熟女无套内射| 美女尤物福利视频| 91操操操操| 男人天堂站| 九九九久久久| 久久久久久久久久久久久9999| 久久春色| 后入人妻一区| 亚洲天堂男人天堂网| 亚洲天堂,男人| 福利视频合集| 校园春色综合色| 不卡av在线中文字幕| 亚洲色图国产另类| 逼逼逼逼操操操操操操操操操午夜剧场 | 成人线上超碰| 女同性恋一区二区三区精品视频| 国模无码人体一区二区三| 久久久久久久久久久97| 日本东京热久久久电影| laoshunv91| 欧美性爱伊人| 9Ⅰ老熟女| 蜜臀精品1区2区| 中国少妇XXXX做受| 亚洲在线观看| 九色 人妻 大香蕉| 久久精品国产亚洲AV高清演员表| 超碰综合色| 欧美精品日韩一区二区| 亚洲欧美色图片| 91总综合网| 太久视频| 欧美激情专区| 久久久久网站-538在线视频-欧美永久乱码 | 综合网亚洲| 国产日韩人人| 人妻-91porn| 国产精品视频内谢女人| 色综合99999| 五月丁香影视| 欧美伊人久久综合网| 狠狠爱夜夜干| 俺去久久| 丁香六月东京热| 超碰在线一区| 99热免费精品| av凤凰久久久| 色色色日本| 97中文综合| 午夜天堂精品久久| 天天色天天干天天爱| 久久精品操| 91成人国产综合久久精品蜜月| 日本午夜久久电影| 午夜亚洲WWW湿好大| 热热色国产一二区AV| 久久久久久性爱片| 国产亚洲日本精品在线| 牛牛AV人人夜夜澡人人爽| 国产AV天美传媒一区二区三区 | 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 人妻熟女一区二区| 亚洲,欧美,春色,另类| 围产精品一区二区三区视频播放| 亚洲色欧美| 国产超碰97| 成人无码专区精品视频| 婷婷91| 国产日韩欧美亚洲精品95| 2017大香蕉| 男人的天堂99| 欧美变态激情网| 99999精品成人| 中文字幕人妻丝袜| 日韩人妻无码专区| 国产69精品久久久久99尤物| 亚洲资源站| 免费99精品国产自在在线| 欧美精品 - 91爱爱| 中文字幕一区 二区三四五 区日 日骚| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 成人影 天天操 亚洲| 干婷婷综合网| 国产成年免费大片黄在线观看| 精品国产一区探花在线观看| 大香蕉淫人| 91热热色| 亚洲色图第一页| 欧美在线视频播放| 欧美色图成人网一区二区 | 色婷亚洲五月在线观看| 欧美成人一级免费电影| 天天操夜夜操狠很操| 无码人妻精品酒店| 婷婷久月| 91亚洲人| 极品肉射| 91精品人妻一品二品三品| 欧美A√综合网 | www久久精品| 狠狠操狠狠燥| 天天在线91| 伊人色综合欧美| 学生妹天天看| 物业黑人 AV一区| 岛国不卡超碰护士AV在线播放| 蜜桃视频一区二区三区 | 丁香五月色| 久久婷婷五月| 天天色综合图片| 99视频内射三四| 美女黄色一级A视频| 男人的天堂2010| 久久乐| 亚洲无992tv| 日韩欧美麻豆大片| av毛片aaaaa免费看| 欧美成不卡网| 在线观看亚洲成人精品| 蜜臀久久久| 欧美精品日韩久久久九| 影音资源男人日韩| 久久乐| 久久婷婷电影网| 啊啊啊啊,啊啊好多水| 亚洲一级特黄大片在线播放91| 一级岛国大片| 综合操逼| 亚洲成av人片色午夜乱码| 99这里有精品视频| 亚洲天堂性爱| 一及黄久一点| 天美传媒av一区二区| 骚鸭AV| 男人的天堂2019| 亚洲国产av中文字幕久久| 日韩欧美中文日韩欧美色| 人妻日日干| 超碰人人妻| 91视频成人福利网站在线一区| 是还免费视频1727我| 一区二区无码视频| 欧美乱欲| www.91人妻.com| 国产又操| 色噜噜人妻av 中文字幕| 97AV在线免费观看| 综合五月天| 无码不卡亚洲成?人片| 人人妻人射| 五月天婷婷影院| 北京美女一区二区| 日日97| 人人做,人人操,人人摸| 日韩Va亚洲va欧美Ⅴa久久| 90后后入| 国产久久一区二区三区野外在线|